我创建了一个测试项目来尝试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/

10-14 22:05
查看更多