Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/104.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.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
Ios 如何根据浮点值筛选NSmutableArray_Ios_Objective C_Nsmutablearray_Nspredicate - Fatal编程技术网

Ios 如何根据浮点值筛选NSmutableArray

Ios 如何根据浮点值筛选NSmutableArray,ios,objective-c,nsmutablearray,nspredicate,Ios,Objective C,Nsmutablearray,Nspredicate,我正在使用NScoding加载NSMutableArray;这加载得很好: _patients = [RND_PatientDB loadPatientData]; _NSMutableArray的每个对象都有一个名为“completed”的浮点 我尝试仅从NSmutableArray的“_pateints”中筛选具有_patients.completed==1的对象: NSNumber *num1 = [NSNumber numberWithFloat:1.0]; NSPredicate *

我正在使用NScoding加载NSMutableArray;这加载得很好:

_patients = [RND_PatientDB loadPatientData];
_NSMutableArray的每个对象都有一个名为“completed”的浮点

我尝试仅从NSmutableArray的“_pateints”中筛选具有_patients.completed==1的对象:

NSNumber *num1 = [NSNumber numberWithFloat:1.0];
NSPredicate *sPredicate = [NSPredicate predicateWithFormat:@"completed == %@", num1];
patientsFiltered = [[_patients filteredArrayUsingPredicate:sPredicate] mutableCopy];
我得到这个错误:

由于未捕获异常“NSUnknownKeyException”而终止应用程序, 原因:'[valueForUndefinedKey:]:此 类不符合已完成密钥的键值编码


有什么想法吗?

如果您将“完成”定义为模型中的浮动,您应该使用

float num1 = 1.0f;
NSPredicate *sPredicate = [NSPredicate predicateWithFormat:@"completed == %f", num1];
当您在数据模型中的NSNumber中包装了float时,下面是正确的

NSNumber *num1 = [NSNumber numberWithFloat:1.0];

我有一个疑问,什么是将完成定义为浮点而不是布尔?谢谢@bllakjakk我尝试了你的建议,但当我加载应用程序时,它仍然崩溃
2014-09-21 11:20:21.819轮[12492:583095]***由于未捕获的异常“NSUnknownKeyException”,终止应用程序,原因:'[valueForUndefinedKey:]:对于已完成的密钥,此类不符合键值编码。
根据您在注释中添加的日志:您使用了错误的密钥,或者您使用init而不是initWithEntity初始化了托管对象:inManagedObjectContext:。请使用NSMnagagedObject初始化代码的进一步部分编辑您的问题。还有拼写检查患者。谢谢@bllakjakk我通过使用
NSPredicate*sppredicate=[NSPredicate predicateWithFormat:@“self.completed==%f”,num1]解决了这个问题哪一个是正确的键。