之前在开发是遇到了在OC文件中调用Swift对象的变量调用不到的问题,这里总结一下:
1.首先我们一个Swift项目TestProject。
2.建立一个Swift的文件继承自NSObject名字为SwiftFile.swift,并声明一个字符串变量swiftName。
import UIKit
class SwiftFile: NSObject {
var swiftName = ""
}
3.建立一个OC的文件ObjectFile,并导入“HFSTeacher-Swift.h”(OC想要调用Swift需要导入此文件)如何配置以及导入原因可以自行查询。
#import "ObjectFile.h"
#import "HFSTeacher-Swift.h"
@implementation ObjectFile
-(void)oneMethod
{
SwiftFile *swiftFile = [[SwiftFile alloc]init];
NSLog(@"%@",swiftFile.swiftName);
}
@end
这个时候会报错,说在SwiftFile中找不到swiftName成员。
4.这个时候需要在SwiftFile.swift中加入一个声明@objcMembers以表示文件中成员可以被OC调用:
import UIKit
@objcMembers
class SwiftFile: NSObject {
var swiftName = ""
}
5.如此则大功告成!