2016-03-25 4 views
0

問題はコアデータストアから保存されたデータを取得しようとしていますが、「フォルトデータ」があるか、私は、ビューコントローラでの私のコード (有効な位置座標)データを正しく保存:iOSコアデータNSFetchedResultController.fetchedObjectはフォールトデータと(0,0)アノテーションを返します

override func viewDidLoad() { 
     do { 
      try fetchedResultsController.performFetch() 
     } catch {} 
     fetchedResultsController.delegate = self 
     //fetch all pins from core data and load 
     let pins = fetchedResultsController.fetchedObjects as! [Pin] 
     mapView.addAnnotations(pins) 
     print(pins.count) /// 10 
     print(pins) 
     print(pins[0].coordinate) 
     print(pins[1].coordinate) 
} 

私は私が正常にするたびに各オブジェクトを保存すると確信しています。 いくつかの事実を印刷します: pins.countにはいくつかの番号があります。しかし、これは残りのプリントからは奇妙です 私は"data: <fault>"とゼロの位置を得ました。


Pin: 0x7fdc0b40e160> (entity: Pin; id: 0xd000000000080000 <x-coredata://50885CE6-70AB-4AA5-AA84-19D895E4F062/Pin/p2> ; data: <fault>)]) 
CLLocationCoordinate2D(latitude: 0.0, longitude: 0.0) 
CLLocationCoordinate2D(latitude: 0.0, longitude: 0.0) 

答えて

0

そのエラーではなく、あなたが<障害を得る>コアデータインチこれは、コアデータのデータ処理の機能です。コアデータは、パフォーマンスを犠牲にすることなくメモリフットプリントを低く保つために最適化された方法で実装されています。欠陥技術はそれを達成するのに役立ちます。必要に応じてデータをメモリにロードするだけです。次のいずれかの理由によりエラーが発生しました:

1)データを保存している間にエラーが発生している可能性があります。

2)コアデータの関係プロパティ(オプションおよび必須)の管理における論理エラー。

3)コアデータがフォルトを満たすことができませんでした(つまり、永続ストアからデータをロードする)。 (これはnumber(2)論理エラーにも起因する可能性があります)。コアデータは、デフォルトで管理されているため、フォールトが実行されなかった後も例外をスローしません。アクセスできない管理対象オブジェクトの管理対象オブジェクトのすべてのプロパティでゼロが得られます。

障害の詳細については、http://code.tutsplus.com/tutorials/what-is-a-core-data-fault--cms-25157を参照してください。あなたはそこに不具合があると考えているかもしれませんし、おそらくあなたはその誤りを持っています。

関連する問題