0

CoreData でデータを保存します。配列があり、最後のオカレンスは「nil」値です。「nil」値を CoreData に保存したくありません。「nil」値を確認しようとしましたが、達成できません。私のコード:

for (NSManagedObject *category in array) 
{ 
        //if (![category isEqual:nil]) {     <- FAILED ATTEMPT
        //if (![category isFault]) {           <- FAILED ATTEMPT
        //if (category != NULL) {           <- FAILED ATTEMPT

         [ more Objective-C code ...]

         // Insert Objects in the Core Data
         theLine = [NSEntityDescription insertNewObjectForEntityForName:entName
                                                                          inManagedObjectContext:context];
        //}
  }

NSManagedObject の「nil 値」をチェックするのがなぜ難しいのか理解できません。

私のコードでは、「カテゴリ」は NSManagedObject です。いつ「nil」値になるか知りたい:

  • (NSManagedObject) isEqual
  • (NSManagedObject) isFault
  • (NSManagedObject) = NULL

これらのオプションは実行されません。誰でも私を助けることができますか?

よろしくお願いします。

4

1 に答える 1

1

if(category)単に使用するかif(category == nil)、nil に等しいかどうかを確認する必要があると思います。

これに失敗すると、次のような for ループを実行できます。

for (int cycle =0 ; cycle < [array count]; cycle++){
   if ([[array objectAtIndex:cycle]isKindOfClass[NSNull class]]){


////Do some code here

   }

}

これは、ループが NSManagedObjects のみを参照するため、オブジェクトの値が Null でないことを確認します。

于 2012-08-31T19:52:30.923 に答える