在我們用下面這條SQL如何實現核心數據
其中studentName LIKE「%a」和StudentID = 1
如何,在客觀c和核心數據使用setpredicate爲fetchrequest做
我有名字的只有兩個輸入部分@ 「a」 和ID @ 「1」
問候
在我們用下面這條SQL如何實現核心數據
其中studentName LIKE「%a」和StudentID = 1
如何,在客觀c和核心數據使用setpredicate爲fetchrequest做
我有名字的只有兩個輸入部分@ 「a」 和ID @ 「1」
問候
它曾與含有苯並[cd]但我想 知道,如果我傳遞的字符串 空,並希望通過ID只搜索
通常情況下,你不要使用空字符串一個獲取謂詞,因爲核心數據將嘗試匹配空字符串。相反,您應該針對不同情況創建不同的獲取請求。提取請求是可以存儲在數組中的輕量級對象(甚至是數據模型本身)。
如果出現這種情況,您將測試一個空字符串,如果爲true,則使用僅查找StudentID的獲取謂詞。
通常,儘量避免以SQl術語思考覈心數據。這很自然但很危險。核心數據不是SQL。實體不是表格。對象不是行。列不是屬性。核心數據是一個對象圖管理系統,它可能會或可能不會持久化對象圖,並且可能會或可能不會在後臺使用SQL來做到這一點。試圖用SQL語言來思考覈心數據會導致你完全誤解核心數據,並導致很多悲傷和浪費時間。
我同意TechZen,你應該考慮核心數據的對象方面,而不是sql支持。 CD使用SQL作爲實現細節,不一定是一個定義特徵。
這是從開發人員庫的一個例子
Creating Fetch Request Templates Programmatically
basicly它看起來是這樣的預測使用...
NSManagedObjectModel *model = <#Get a model#>;
NSFetchRequest *requestTemplate = [[NSFetchRequest alloc] init];
NSEntityDescription *publicationEntity =
[[model entitiesByName] objectForKey:@"Publication"];
[requestTemplate setEntity:publicationEntity];
NSPredicate *predicateTemplate = [NSPredicate predicateWithFormat:
@"(mainAuthor.firstName like[cd] $FIRST_NAME) AND \
(mainAuthor.lastName like[cd] $LAST_NAME) AND \
(publicationDate > $DATE)"];
[requestTemplate setPredicate:predicateTemplate];
[model setFetchRequestTemplate:requestTemplate
forName:@"PublicationsForAuthorSinceDate"];
[requestTemplate release];
所以通過看你的可能是這樣的後
NSPredicate *predicateTemplate = [NSPredicate predicateWithFormat:
@"(mainAuthor.firstName like[cd] $FIRST_NAME) AND \
(mainAuthor.lastName like[cd] $LAST_NAME) AND \
(publicationDate > $DATE)"];
[requestTemplate setPredicate:predicateTemplate];
希望這有助於我目前在我的項目中設置了核心數據,並且整個上午都在閱讀這些內容。
http://stackoverflow.com/questions/2740933/nspredicate-that-is-the-equivalent-of-sqls-like – Joe 2011-03-24 15:17:29
它的工作與包含[cd],但我想知道如果我通過字符串空並且只想通過ID進行搜索 – Ali 2011-03-24 16:34:43