gpt4 book ai didi

ios5 - 如何为核心数据向 NSOrderedSet 添加元素?

转载 作者:行者123 更新时间:2023-12-04 04:51:59 25 4
gpt4 key购买 nike

我对此做了一些研究 post .但它的解决方案都不适合我。让我解释一下我做了什么:

enter image description here

它实际上与提到的帖子非常相似。

类别.h

@class Category, Item;

@interface Category : NSManagedObject

@property (nonatomic, retain) NSString * name;
@property (nonatomic, retain) NSOrderedSet *items;
@property (nonatomic, retain) Category *parentcategory;
@property (nonatomic, retain) NSSet *subcategories;

@end

@interface Category (CoreDataGeneratedAccessors)

- (void)insertObject:(Item *)value inItemsAtIndex:(NSUInteger)idx;
- (void)removeObjectFromItemsAtIndex:(NSUInteger)idx;
- (void)insertItems:(NSArray *)value atIndexes:(NSIndexSet *)indexes;
- (void)removeItemsAtIndexes:(NSIndexSet *)indexes;
- (void)replaceObjectInItemsAtIndex:(NSUInteger)idx withObject:(Item *)value;
- (void)replaceItemsAtIndexes:(NSIndexSet *)indexes withItems:(NSArray *)values;
- (void)addItemsObject:(Item *)value;
- (void)removeItemsObject:(Item *)value;
- (void)addItems:(NSOrderedSet *)values;
- (void)removeItems:(NSOrderedSet *)values;
- (void)addSubcategoriesObject:(Category *)value;
- (void)removeSubcategoriesObject:(Category *)value;
- (void)addSubcategories:(NSSet *)values;
- (void)removeSubcategories:(NSSet *)values;

@end

在我的 View Controller 中,我加载了以下类别之一:
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:kEntityCategory];
request.sortDescriptors = [NSArray arrayWithObject:[NSSortDescriptor
sortDescriptorWithKey:kAttributeCategoryName ascending:YES
selector:@selector(localizedCaseInsensitiveCompare:)]];

NSError *error = nil;
AppDelegate* appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;

NSArray* data = [appDelegate.dataCenter.document.managedObjectContext executeFetchRequest:request error:&error];
if ( data.count > 0)
{
self.category = [data objectAtIndex:0];
}

我在导航栏中有一个按钮用于测试目的。当它被点击时,我将复制第一个项目并添加到最后。
Item* item = [self.category.items objectAtIndex:0];

[self.category willChangeValueForKey:@"items"];
NSMutableOrderedSet *tempSet = [NSMutableOrderedSet orderedSetWithOrderedSet:self.category.items];
[tempSet addObject: item];
self.category.items = tempSet;
[self.category didChangeValueForKey:@"items"];

问题是该项目根本没有添加到数据库中。 (我做了一些测试,比如我修改了item的内容,证明数据库完全没有问题。)但是我不知道item没有到数据库的原因。有人可以帮忙吗?谢谢

最佳答案

迅速:

let mutableItems = items.mutableCopy() as! NSMutableOrderedSet
mutableItems.addObject(anItem)
items = mutableItems.copy() as! NSOrderedSet

目标-C:
NSMutableOrderedSet *mutableItems = (NSMutableOrderedSet *)items.mutableCopy;
[mutableItems addObject:anItem];
items = (NSOrderedSet *)mutableItems.copy;

关于ios5 - 如何为核心数据向 NSOrderedSet 添加元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12297853/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com