在核心数据中获取NSMutableArray

时间:2015-12-04 15:24:08

标签: ios swift core-data nsfetchrequest

早上好,我有一个我无法弄清楚的问题,现在已经有一段时间了。

我使用对象填充NSMutableArray,而不是将它们保存到Core Data。

我的xcdatamodeld属性设置为可转换。我的NSManagedObject的子类是@NSManaged var carsname: NSMutableArray?

我尝试将其更改为NSMutableStringNSArrayNSString,但获得相同的结果。

问题在于当我执行我的获取请求时,我知道我有多个对象,我只从数组中获取一个对象。这是获取的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);

    }
}

0 个答案:

没有答案