私はSwiftプロジェクトを最新のSwiftバージョンに移行しようとしています。Swift 2.3からSwift 3への移行エラーメッセージ
fileprivate lazy var _uploadedSurveysController: NSFetchedResultsController? = nil
このコード行では、次のエラーが発生します。
Nil cannot initialize the specified type NSFetchedResultsController?
Xcodeには、NSFetchedResultsControllerの隣に別の疑問符が追加されるという修正勧告が出ています。私が「はい」と答えると、同じエラーが発生し、別の疑問符を追加する修正が出てきます。
は、ここでより多くのコード
fileprivate var uploadedSurveysController: NSFetchedResultsController {
guard _uploadedSurveysController == nil else { return _uploadedSurveysController! }
_uploadedSurveysController = NSFetchedResultsController(fetchRequest: coreDataHelper.mailedAssetsFetchRequest(), managedObjectContext: managedObjectContext, sectionNameKeyPath: "section2Identifier", cacheName: nil)
do {
try _uploadedSurveysController!.performFetch()
} catch let error as NSError { Logger.sharedInstance.logMessage("\(#function) Uploaded Surveys Fetching Error: \(error.userInfo)") }
return _uploadedSurveysController!
}
すべてのヘルプは本当にいただければ幸いです。
あなたに知らせてください。私はSwiftには本当に新しく、既存のプロジェクトをSwift 2.3から3に更新しようとしています。
ありがとうございます。 Remzi。
でスウィフトで怠惰なインスタンス化に適切な説明を見つけたスウィフト3でNSFetchedResultsController'は現在、ジェネリック型宣言が必要です。 '_uploadedSurveysController'が使用されているところでさらにコードを含めることはできますか? ( 'nilでない 'として初期化されています) – Danoram
あなたの変数はすでにオプションで、nilなのではないので、' = nil 'を削除してみてください。使用するときはいつでもこのコントローラを使用する前にnilをチェックします。 –
こんにちはAnni、私は '= nil'を出しましたが、何もしませんでした。違うエラーが出てきました。 – rsimsek