CoreData NSPredicate使用(相當于SQL where語句)

NSError *error;

NSManagedObjectContext *context = [(AppDelegate *)[[UIApplication sharedApplication] delegate] managedObjectContext];

NSEntityDescription *entityDesc = [NSEntityDescription entityForName:@"Tz_task_from" inManagedObjectContext:context];

NSFetchRequest *request = [[NSFetchRequest alloc]init];

[request setEntity:entityDesc];

[request setReturnsObjectsAsFaults:NO];

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"taskfrom=%@",userid];

[request setPredicate:predicate];

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"taskend" ascending:NO];

NSArray*sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor,nil];

[request setSortDescriptors:sortDescriptors];

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

1、比較運算符>,<,==,>=,<=,!=

2、范圍運算符:IN、BETWEEN

3、字符串本身:SELF

4、字符串相關:

(1)、CONTAINS包含某個字符串

@nameCONTAINS[cd] %@

(2)、BEGINSWITH以某個字符串開頭

@nameBEGINSWITH[c] %@

(3)、ENDSWITH以某個字符串結束

@nameENDSWITH[d] %@

注:

[c]不區分大小寫

[d]不區分發音符號即沒有重音符號

[cd]既不區分大小寫,也不區分發音符號。

5、通配符:LIKE

例:[NSPredicate predicateWithFormat:[NSString stringWithFormat:@"customername LIKE[cd] '*%@*'",_searchString]];

6、正則表達式:MATCHES

例:NSString *regex = @"^A.+e$";? //以A開頭,e結尾

@"name MATCHES %@",regex

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容