我创建了一个测试项目来尝试Swift。但是我一直坚持将Swift类导入Objective-C类。项目名称为“ TestSwift1”。并且我将“包装中的定义模块”设置为“是”。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对其进行标记,因为它在这里说“从Objective-C使用Swift”。我的Swift类必须看起来像这样:
//swift SwtClass.swift
import Foundation
@objc class SwtClass
{
var title = ""
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句