Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我想在Objective-C中使用swift类_Objective C_Swift - Fatal编程技术网

我想在Objective-C中使用swift类

我想在Objective-C中使用swift类,objective-c,swift,Objective C,Swift,我想在objective-c文件中使用swift类,需要修改字符串值 另外,要在ObjPost 我尝试在ProjectName Swift.h文件中导入这两个类 @class ObjPost; @class ObjMedia; @class ObjPost; @class ObjMedia; 下面是我的swift课程 @objc class ObjPost:NSObject, Codable { /// Post ID var id:Int /// var contentAvailab

我想在objective-c文件中使用swift类,需要修改字符串值

另外,要在
ObjPost

我尝试在ProjectName Swift.h文件中导入这两个类

@class ObjPost;
@class ObjMedia;
@class ObjPost;
@class ObjMedia;

下面是我的swift课程

@objc class ObjPost:NSObject, Codable {

/// Post ID
var id:Int

///
var contentAvailable : Bool

/// Post User ID
var userId : Int

/// Post user name
var userName : String

/// Profile Image (Display Picture)
var userProfileImage: String

var subTitle : String
var postedSince : String
var isPin : Bool
var location : String
var lat : String
var long: String

var albumName:String
var isLiked: Bool
var isDisliked : Bool
var likes : Int
var dislikes: Int
var shares: Int
var comments:Int
//var postDescription: String?
var postDescription: String?
//    var objPostDescription: String
var albumId: Int
var privacy: Int
var isEditable: Bool
var media:[ObjMedia]
}

我正在使用这个类,但我无法在objective-c文件中获取变量

当我从ObjPost获取用户名时,将发生错误
在转发类对象“ObjPost”中找不到属性“userName”


.

使用@objc声明变量,如下面的代码,然后重试:

@objc var userName : String
你说上面的代码不起作用,所以我试着编写一个完整的代码。我在项目中创建了一个文件Country.swift,我在其中编写了以下代码:

    @objc class CountrySwift: NSObject {
     var name: String = ""
     var ranking: String = ""
     }
@class CountrySwift;

@interface ObjectiveCClass : NSObject

-(CountrySwift* ) countryObject;

@end
然后在something.m文件中我写到:

#import "TargetName-Swift.h"
如果TargetName包含空格,请将空格替换为“\u1” 然后使用如下类:

 CountrySwift *country = [[CountrySwift alloc] init];
 country.name = @"Bangladesh";
这工作没有任何错误

如果您还需要将此swift类导入.h文件(不要在.h文件中导入TargetName swift.h),请尝试以下代码:

    @objc class CountrySwift: NSObject {
     var name: String = ""
     var ranking: String = ""
     }
@class CountrySwift;

@interface ObjectiveCClass : NSObject

-(CountrySwift* ) countryObject;

@end
我尝试在ProjectName Swift.h文件中导入这两个类

@class ObjPost;
@class ObjMedia;
@class ObjPost;
@class ObjMedia;
你称之为进口,但它们不是。它们只是预先声明。它们不会告诉编译器关于这些类的任何信息

有一个共享的Objective-C标题。在“Objective-C生成的接口头名称”下查看应用程序目标的构建设置,以了解其名称。它将类似于MyApp Swift.h。您需要在所有需要它的实现文件的顶部导入at文件(.m文件,而不是.h文件):


在要使用swift类的目标c文件中,您是否编写了“#import ProjectName swift.h”?您不需要直接导入swift类。是的,我在我的objective-c文件中导入ProjectName Swift.h文件我在我的objective-c文件中创建了
ObjPost
,但当我尝试在用户名中赋值时,错误将按照上面的屏幕截图发生。你是否在.m文件中导入了该文件?我需要创建ObjPost类的属性,所以我导入.h文件。这是工作文件。创建属性没有任何错误,但是,当我尝试从ObjPost访问其他变量时,会出现上述问题所示的错误。ProjectName Swift.h应导入到.m文件中。我在答案中添加了完整的过程。如果我导入到.m文件中,那么在不导入到.h文件的情况下,我应该如何将引用从Swift文件发送到objective-c文件?Swift具有不同的导入文件请坚持你问的问题。你照我说的去做,错误就消失了,完成了。