2016-09-30 9 views
0

私は今大きな問題があります。私はちょうどSwift 3に私のアプリを更新し、Stackoverflowのヘルプで私は関係をアクセスしようとする述語を除いて、これまでのところ滑らかに動いています。Swift 3 NSPredicate関係リクエストは空の配列を返します

これはスウィフト2.3

if let myStation = station { 
     context.performAndWait { 
      let request = ProcessDetail.fetchRequest() as! NSFetchRequest<ProcessDetail> 
      // DOESNT WORK ANYMORE !!!!! NEW SWIFT 
      request.predicate = NSPredicate(format: "process.station_ID = %@", myStation.station_ID!) 

      do { 
       let processDetails = try context.fetch(request) 
       for processDetail in processDetails { 
        ansProcessDetails += 1 
        if processDetail.processdetail_checked == "yes" { 
         ansMasteredProcessDetails += 1 
        } else { 
         ansNotMasteredProcessDetails += 1 
        } 
       } 
      } catch let error { 
       print(error) 
      } 
     } 

でしかし、今processDetailsの配列が空であるとうまく働いていた私の古い要求です。助言がありますか?ここで

は再びコードの重要な行です:

request.predicate = NSPredicate(format: "process.station_ID = %@", myStation.station_ID!) 

おかげでベン

+0

station_IDはどのタイプですか? –

+0

@ request.predicate = NSPredicate(形式: "%K.%K =%@"、 "プロセス"、 "station_ID"、myStation.station_ID!) ' –

+0

@OlegGordiichuk station_IDはStingタイプです – benhofmann

答えて

0

スウィフト3では、それは決して完全にはこのスレッドによると、暗黙的なブリッジング変換を実行しません:たぶんhttps://github.com/apple/swift-evolution/blob/master/proposals/0072-eliminate-implicit-bridging-conversions.md

、station_ID String型ですか? ですから、これを試すことができます:

request.predicate = NSPredicate(format: "process.station_ID = %@", myStation.station_ID as! NSString) 

は迅速3での検索のためにこれを使用していますし、それが迅速2.3の両方で働いている、私はそれが心から

+0

articelはそれを見ていただきありがとうございます。 NSStringとしてキャストしようとしましたが機能しませんでした。 問題は、iがその 「request.predicate = NSPredicate(形式: 『process.station =%@』、myStation.station)」のような何かをしようとしていても私は戻って、空の配列を取得いつも私のために働いた 。 – benhofmann

+0

ありがとう、私はあなたの問題に役立つことを願っています。 – softninja

+0

あなたのコードを見直してローカルに修正することができれば、デバッグすることで問題は見つかるはずです。 – softninja

0

をあなたの問題を修正している場合は、これを試すことができます知ってみましょう3.適切な配列を返します。

/*

NSPredicate(format: "process.station_ID CONTAINS[c] %@",myStation.station_ID) 

*/

それはあなたの問題を修正した場合、私に教えてください。

ありがとうマンデープシンシ

+0

うーん、それは働くことができませんでした。全てが素早く完全に動作していたので、非常に不満です。しかし、おそらくsthが壊れて、間違った位置で間違いを探しています。とにかく助けてくれてありがとう – benhofmann

関連する問題