Objective c 功能声明中的预期标识符-目标-C到Swift
我正试图将我的Objective-C转换为Swift——对这里的错误以及如何处理它有点困惑。我一直在阅读文档,但仍然感到困惑——这是由转换器生成的。有人有什么想法吗Objective c 功能声明中的预期标识符-目标-C到Swift,objective-c,swift,Objective C,Swift,我正试图将我的Objective-C转换为Swift——对这里的错误以及如何处理它有点困惑。我一直在阅读文档,但仍然感到困惑——这是由转换器生成的。有人有什么想法吗 Objective-C - (id) init { self = [super init]; if (!self) return nil; self.cmRequestsQuery = [[NSMutableArray alloc] initWithCapacity:5]; s
Objective-C
- (id) init
{
self = [super init];
if (!self)
return nil;
self.cmRequestsQuery = [[NSMutableArray alloc] initWithCapacity:5];
self.cmQueryIsRuning = NO;
self.requestCounter = 0;
self.serverOfflineOrBadResponse = NO;
self.userWasLoggedIn = NO;
self.needToSendPushNotiToken = NO;
self.noInternetConection = NO;
self.needToUpdateToken = NO;
[[reqOperationManager sharedManager] setDelegate:self];
return self;
}
Swift
func init() -> AnyObject {
self = super()
if !self {
return nil
}
self.cmRequestsQuery = NSMutableArray(capacity: 5)
self.cmQueryIsRuning = false
self.requestCounter = 0
self.serverOfflineOrBadResponse = false
self.userWasLoggedIn = false
self.needToSendPushNotiToken = false
self.noInternetConection = false
self.needToUpdateToken = false
reqOperationManager.sharedManager().setDelegate(self)
return self
}
在Swift
init
中,方法没有func
关键字,也没有返回值,调用super的点不同
init() {
首先初始化所有实例变量
self.cmRequestsQuery = NSMutableArray(capacity: 5)
self.cmQueryIsRuning = false
self.requestCounter = 0
self.serverOfflineOrBadResponse = false
self.userWasLoggedIn = false
self.needToSendPushNotiToken = false
self.noInternetConection = false
self.needToUpdateToken = false
然后调用super(如果需要)获取实例
super.init()
然后调用使用self
reqOperationManager.sharedManager().setDelegate(self)
就这样
}
在某些情况下,您必须在init()
之前添加override
关键字
有关更多详细信息,请阅读Swift语言指南中有关初始化的章节。这是值得的。我遇到这个问题是因为我试图在我的swift类中导入swift头(导入“ProjectName swift.h”)。解决了一个问题,它仍然在
func init()->AnyObject{
中抱怨“函数声明中需要标识符。删除“func”部分会导致错误”一行中的连续声明必须用“;”分隔。我相信这是从AnyObject方面来的。请参阅答案末尾提到的“Swift语言指南中的初始化”: