首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSDictionary NSManagedObject

NSDictionary NSManagedObject
EN

Stack Overflow用户
提问于 2016-01-12 10:05:10
回答 2查看 195关注 0票数 1

如何将字典数据转换为NSManagedObject数据?我使用了propertiesToFetch,它返回字典数据。但我想要NSManagedObject数据。请引导我

代码语言:javascript
复制
[fetchRequest setPropertiesToFetch:[NSArray arrayWithObjects:catalogID, pageID, nil]];
[fetch setResultType:NSDictionaryResultType];
[fetch setReturnsDistinctResults : YES];
NSError* error = nil;
self.resultPageArray = [context executeFetchRequest:fetch error:&error];

当我将类型更改为NSManagedObjectResultType时,就得到了不明确的数据。我读到,在使用propertiesToFetch时,它以字典格式保存数据。但是我想要获得不同的数据,并将其保存到NSManagedObjects中。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-14 11:19:21

我已经解决了这个问题。我正在获取NSManagedObjects的数据。之后,我将数据保存到另一个数组,不重复。并返回新的数组。

代码语言:javascript
复制
self.resultPageArray = [context executeFetchRequest:fetch error:&error];            
NSMutableArray *resultantFinalArr = [[NSMutableArray alloc] init];
for (int i = 0; i<resultPageArray.count; i++)
{
    catalogPageDataModel *atIndexI = [resultPageArray objectAtIndex:i];
    BOOL find = NO;
    for (catalogPageDataModel* catalogPageDataModel in resultantFinalArr)
    {
        if (catalogPageDataModel.pageid.intValue == atIndexI.pageid.intValue)
        {
            find = YES;
            break;
        }
    }
    if (!find)
        [resultantFinalArr addObject:atIndexI];
}
            NSLog(@"result array count %lu",(unsigned long)resultantFinalArr.count);
NSLog (@"names: %@",resultantFinalArr);
return resultantFinalArr;
票数 0
EN

Stack Overflow用户

发布于 2016-01-12 11:21:58

尝尝这个,

代码语言:javascript
复制
[fetchRequest setPropertiesToFetch:[NSArray arrayWithObjects:catalogID, pageID, nil]];
[fetch setResultType:NSManagedObjectResultType];
[fetch setReturnsDistinctResults : YES];
NSError* error = nil;
self.resultPageArray = [context executeFetchRequest:fetch error:&error];

我的代码:

代码语言:javascript
复制
NSError *error = nil;
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"BookInfo"
                                          inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];
[fetchRequest setPropertiesToFetch:@[catalogID, pageID]];

[fetchRequest setPredicate: [NSPredicate predicateWithFormat:@"(bookId == %@)",strId]];

NSArray *fetchedItems = [self.managedObjectContext executeFetchRequest:fetchRequest error:&error];

if( fetchedItems.count > 0 ) {
    BookInfo *bInfo =  [fetchedItems lastObject];
    NSLog(@"%@",bInfo.bookName);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34740622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档