我创建了一个测试项目来尝试Swift。但是我一直坚持将Swift类导入到Objective-C类中。项目名称为“TestSwift1”。并且我将“包装中的定义模块”设置为"is"。 XCode-Beta3
我有下一个代码:
//swift SwtClass.swift
import Foundation
class SwtClass
{
var title = ""
}
//Objective-C ObjClass.h
@interface ObjClass : NSObject
@property (nonatomic, strong) NSString* title;
@end
//Objective-c ObjClass.m
#import <Foundation/Foundation.h>
#import "ObjClass.h"
#import <testSwift1-Swift.h>
@implementation ObjClass
- (void)doSomething
{
SwtClass* b; // Error: "Use of undeclared identifier 'SwtClass'"
// Error: "Use of undeclared identifier 'b'"
NSLog(@"something is done");
}
@end
最佳答案
在写这个问题时,我找到了解决方案。和往常一样,这很简单,但是花了一段时间,也许可以节省一些时间。
要在Objective-C中使用Swift类(该不是NSObject的子类),请不要忘记使用 @objc 对其进行标记,就像在这里"Using Swift from Objective-C"所说的那样。我的Swift类必须如下所示:
//swift SwtClass.swift
import Foundation
@objc class SwtClass
{
var title = ""
}
关于ios - 在Objective c中使用Swift类。发生未声明的标识符错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24657645/