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 根据SQL查询创建NSPredicate_Ios_Objective C_Nspredicate - Fatal编程技术网

Ios 根据SQL查询创建NSPredicate

Ios 根据SQL查询创建NSPredicate,ios,objective-c,nspredicate,Ios,Objective C,Nspredicate,我需要将以下SQL转换为NSPredicate: SELECT * FROM accounts WHERE deleted = NO AND inactive = N0 AND name LIKE 'Harry%' ORDER BY accounts DESC, sales DESC; 另外,我可以使用BEGINSWITH来代替SQL和NSPredicate中的类似内容吗?NSPredicate只对应于SQL查询的WHERE子句。您可以使用name=false和inactive=false以及

我需要将以下SQL转换为NSPredicate:

SELECT * FROM accounts
WHERE deleted = NO AND inactive = N0
AND name LIKE 'Harry%'
ORDER BY accounts DESC, sales DESC;

另外,我可以使用BEGINSWITH来代替SQL和NSPredicate中的类似内容吗?

NSPredicate只对应于SQL查询的WHERE子句。您可以使用
name=false和inactive=false以及类似“Harry*”的名称
,或者可以使用
name begins和“Harry”
来代替类似的名称。请注意,它使用“?”和“*”的全局类型通配符,而不是SQL通配符。更完整的文档可从以下网址获得:。NSFetchRequest类将代表其余的子句——它指定要获取的实体(FROM子句)和排序描述符(ORDERBY子句)以及谓词

NSString *atributeValue =@“Harry”;
NSPredicate *predicate = [NSPredicate predicateWithFormat:@“deleted == %@ && inactive == %@ && name begindsWith %@ ”, @0,@0,atributeValue];

NSSortDescriptor *descriptor1 = [nssortDescriptor sortDescriptorWithKey:@“accounts”ascending : NO];

NSSortDescriptor *descriptor2 = [nssortDescriptor sortDescriptorWithKey:@“sales”ascending : NO];

NSArray *result = [all filteredArrayUsingPredicate: predicate]sortedArrayUsingDescriptors :[NSArray arrayEithObjects:descriptor1,descriptor2];
我希望有帮助