Objective c 功能声明中的预期标识符-目标-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转换为Swift——对这里的错误以及如何处理它有点困惑。我一直在阅读文档,但仍然感到困惑——这是由转换器生成的。有人有什么想法吗

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语言指南中的初始化”: