Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa 核心数据返回不正确的值(尽管几乎正确)_Cocoa_Core Data_Nspredicate - Fatal编程技术网

Cocoa 核心数据返回不正确的值(尽管几乎正确)

Cocoa 核心数据返回不正确的值(尽管几乎正确),cocoa,core-data,nspredicate,Cocoa,Core Data,Nspredicate,好的,我向核心数据询问一条记录(userKey),在该记录中,我提取的是一个公钥,然而,公钥最终是90%正确的,但在开始时有一些额外的字符,并封装在括号中 我想我的问题是我得到的是一个指针,而不是来自userMatches的数据。任何指导都将不胜感激 AppDelegate *appdelagate = [[UIApplication sharedApplication]delegate]; context = [appdelagate managedObjectContext]; NSEnt

好的,我向核心数据询问一条记录(userKey),在该记录中,我提取的是一个公钥,然而,公钥最终是90%正确的,但在开始时有一些额外的字符,并封装在括号中

我想我的问题是我得到的是一个指针,而不是来自userMatches的数据。任何指导都将不胜感激

AppDelegate *appdelagate = [[UIApplication sharedApplication]delegate];
context = [appdelagate managedObjectContext];

NSEntityDescription *entitydesc = [NSEntityDescription entityForName:@"KeyData" inManagedObjectContext:context];
NSFetchRequest *request = [[NSFetchRequest alloc]init];

predicate = [NSPredicate predicateWithFormat:@"userKeyCD = %@", userKey];
[request setEntity:entitydesc];
[request setPredicate:predicate];

userMatches = [context executeFetchRequest:request error:&error];

NSString *publicKey = [userMatches valueForKey:@"publicKeyCD"];

好吧,我把最后一行改成这行,效果很好

    NSString *publicKey = [[userMatches objectAtIndex:0] valueForKey:@"publicKeyCD"];
我没有说明它是如何定义的,但是userMatches是一个NSArray(对不起)。它以类似的方式在代码的后面使用

   NSArray *userMatches = [context executeFetchRequest:request error:&error];

现在我认为它是一个正确类型的数组?

我已经在模拟器上检查了DB,并且那里的值是正确的。该代码没有问题(除了您没有检查来自
executeFetchRequest
的返回值,您只是假设它工作)。该值最初是如何进入数据存储的?感谢您的关注。是的,目前我只有错误的nslog(我编辑了它们),错误是(null)。您没有设置获取请求的实体。这怎么可能远程工作?是的,你是对的,我已经改变了。实体是在我的代码中设置的,我只是在复制到这里时设法将其删除(也有很多注释和东西)-很抱歉,这是我的错误。