2

Xcode 6 に戻ると、Core Data を使用するプロジェクトに次の行がありました。うまくいきました。

fetchRequest.predicate = NSCompoundPredicate(type: .AndPredicateType, subpredicates: [predicate, datePredicate])

predicatedatePredicateNSPredicate型です。

昨日、Xcode 6.1 に更新しましたが、上記の行でこのエラーCould not find member 'AndPredicateType' が表示されます。このように値全体を指定してNSCompoundPredicateType.AndPredicateTypeも機能しませんでした。

次に、以下の便利なメソッド行を使用するように行を変更しました。

fetchRequest.predicate = NSCompoundPredicate.andPredicateWithSubpredicates([predicate, datePredicate])

式の型 '()' を型 'NSPredicate?' に変換できませんという新しいエラーが表示されるようになりました。. 理由がわかりません。ドキュメントには、非推奨や変更は示されていませんNSCompoundPredicate

誰でもこれを修正する方法を教えてもらえますか?

ありがとうございました。

4

1 に答える 1

7

初期化子

extension NSPredicate {
    convenience init?(format predicateFormat: String, _ args: CVarArgType...)
}

現在、失敗可能な初期化子です。オプションを返し、NSPredicate?結果をアンラップする必要があります(またはオプションのバインディングを使用します)。例えば:

let compoundPredicate = NSCompoundPredicate(type: .AndPredicateType, subpredicates: [predicate!, datePredicate!])
// Or:
let compoundPredicate = NSCompoundPredicate.andPredicateWithSubpredicates([predicate!, datePredicate!])

参考文献:

于 2014-10-21T06:19:29.863 に答える