在我们用下面这条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