0

そのため、Swift 3.0 用にコードを更新しており、アプリが開かれると、iCloud と同期してフェッチ要求を実行します。

ただし、次のオプションのエラーが発生します

let appDelegate = UIApplication.shared.delegate as! AppDelegate
     appDelegate.syncWithCompletion { (completed) -> Void in
}

appDelegate で次の関数を実行します

func syncWithCompletion(_ completion:@escaping (_ completed:Bool) -> Void) {

      if !ensemble.isLeeched {
            ensemble.leechPersistentStore { error in
                if error != nil {
                    print("cannot leech \(error!.localizedDescription)")
                    completion(false)
                }
                else {
                    print("leached!!")
                    completion(true)
                }
            }
      }
      else {
            ensemble.merge{ error in
                if error != nil {
                    print("cannot merge \(error!.localizedDescription)")
                    completion(false)
                }
                else {
                    print("merged!!")
                    completion(true)
                    //NSNotificationCenter.defaultCenter().postNotificationName("Updated-DB", object: nil)
                }
           }
      }
}

オプションのエラーが何のためのものかわかりません。Xcode は移行時に関数ヘッダーを更新しました。

アップデート:

したがって、明らかに以下の値は nil です

ここに画像の説明を入力

しかし、Swift 3 への移行以降、何が原因なのかはわかりません

4

1 に答える 1