早上好,我有一个我无法弄清楚的问题,现在已经有一段时间了。
我使用对象填充NSMutableArray
,而不是将它们保存到Core Data。
我的xcdatamodeld属性设置为可转换。我的NSManagedObject
的子类是@NSManaged var carsname: NSMutableArray?
我尝试将其更改为NSMutableString
,NSArray
,NSString
,但获得相同的结果。
问题在于当我执行我的获取请求时,我知道我有多个对象,我只从数组中获取一个对象。这是获取的NSLog
。请注意NSMutableArray
的计数是3.但我的HeaderForSection只返回一个。第二个和第三个对象的数据不是最初填充在数组中的名称。下面是我保存到核心数据和我从核心数据获取。任何帮助是极大的赞赏。
NSMUTABLE ARRAY的数量是3 2015-12-04 09:49:42.768 Car-Doc-Safe-Plus [2997:891460]结果有这个( " (entity:CarName; id:0xd000000000040000 ;数据: {\ n carsname = \"(\ n Jeep \ n)\&#34 ;; \ n documents = nil; \ n})", " (entity:CarName; id:0xd000000000080000 ;数据: )&#34 ;, " (entity:CarName; id:0xd0000000000c0000 ;数据: )"
-(void)saveToCoreData {
NSError *error;
AppDelegate *appDel = (AppDelegate *)[[UIApplication sharedApplication]delegate];
NSManagedObjectContext *context = appDel.managedObjectContext;
_entity = [NSEntityDescription entityForName:@"CarName" inManagedObjectContext:context];
NSManagedObject *newObject =[[NSManagedObject alloc]initWithEntity:_entity insertIntoManagedObjectContext:context];
[newObject setValue:sectionName forKey:@"carsname"];
[context save:&error];
}
- (void)viewDidLoad {
[super viewDidLoad];
sectionName = [[NSMutableArray alloc]init];
AppDelegate *appDel = [UIApplication sharedApplication].delegate;
NSManagedObjectContext *context = appDel.managedObjectContext;
NSFetchRequest *request = [[NSFetchRequest alloc] initWithEntityName:@"CarName"];
NSError *error = nil;
NSArray *results = [context executeFetchRequest:request error:&error];
if (error) {
NSLog(@"Failed to Fetch: %@",error);
} else if ( results.count > 0){
CarName *car = results[0];
sectionName = car.carsname.mutableCopy;
NSLog(@"The Results has this in it %@",results);
}
}