2015-10-11 15 views
15

私はObjective-CをSwiftに変換しようとしています。ここでのエラーとその処理方法について少し混乱しています。私はドキュメントを読んできましたが、まだ混乱しています。これはコンバータから生成されたものです。誰にでもアイデアはありますか?スウィフトは関数宣言で期待される識別子 - Objective-C to 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 
} 
+1

try:super.init(); – eliasRuizHz

+0

これは、1つの問題を処理しましたが、まだ 'func init() - > AnyObject {'で "関数宣言の期待される識別子"で不平を言います。 "func"部分を削除するとエラーが発生します。 "行の連続宣言は';'私はそれがAnyObjectの観点からだと信じています。 – user2836292

+0

参照[このリンク](http://stackoverflow.com/questions/24302288/how-to-write-init-method-in-swift) – eliasRuizHz

答えて

27

init方法スーパーを呼び出すために何funcキーワード、ノーリターン値とポイントが異なるんです。

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言語ガイドの初期設定に関する章を参照してください。価値があります。

+0

答えの最後に記載された「スウィフト言語ガイドの初期設定」 :https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Initialization.html – AJP

0

私はswiftヘッダー(import "ProjectName-swift.h")を私の迅速なクラスでインポートしようとしていたので、この問題が発生しました。

関連する問題