3

ここに画像の説明を入力

これにより、BLOG のオブジェクトは削除されますが、LABEL のオブジェクトは削除されません。coredata は両方の intities で自動的に削除されると思いましたか? 各エンティティで手動で行う必要がありますか? LABEL に remove メソッドがないようにするにはどうすればよいですか。

    //delete records from database no longer needed
    for (NSManagedObject *blogTBD in deleteArray) {

        //Delete object from BLOG
        [self.managedObjectContext deleteObject: blogTBD];
     }

私の BLOG.h ファイルにも 4 つの方法があります。私はそれらを有用なものに使用できないように見えるので、誰かがそれらが使用される理由を説明できますか.

- (void)addLabelsObject:(LABEL *)value;
- (void)removeLabelsObject:(LABEL *)value;
- (void)addLabels:(NSSet *)values;
- (void)removeLabels:(NSSet *)values;

私の頭の中では、ロジックは [blogObj addLabels: nssetoflabels] で LABEL に新しいラベルを追加するか、[blogObj removeLabelsObject: label] で LABEL のラベルを削除しますが、どれも機能しません。

各ブログの LABEL にラベルを追加する方法は次のとおりです。これが機能する唯一の方法です。

  for (int i = 0; i < newCategory.count; i++) {

        LABEL *blogLabels = [NSEntityDescription       insertNewObjectForEntityForName:@"LABEL" inManagedObjectContext:self.managedObjectContext];
        blogLabels.categories = [NSString stringWithFormat:@"%@", newCategory[i]];

        //Assign relatioship - add labels to blog
        blogLabels.blog_labels = myBlog;

        //save label
        [self.managedObjectContext save:&error];
    }
4

1 に答える 1

5

モデルの削除ルールを「無効化」から「カスケード」に変更する必要があります。

ここに画像の説明を入力

最も安全な Nullify がデフォルトです。Nullify は何も削除しません。逆の関係を Null に設定するだけです。
カスケードは、関係の宛先にあるオブジェクトを削除します。


2 番目の質問に関しては、これらの方法は、あなたが思っているとおりに機能します。

なぜ彼らは働かないのですか?何も思いつきません。彼らはうまくいくはずです。

于 2013-07-02T20:26:04.737 に答える