提问人:krina_patel 提问时间:10/26/2015 最后编辑:Leokrina_patel 更新时间:10/27/2015 访问量:836
如何限制在coredata中输入null值?
How to restrict entry of null value in coredata?
问:
我正在处理基于XMLparsing的项目,我使用coredata来存储url。
但是有时coredata输入的null值我不知道为什么会出现这种类型的问题。
这是我尝试过的代码。
- (void)feedParserDidFinish:(MWFeedParser *)parser {
NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"demo"];
fetchRequest.predicate = [NSPredicate predicateWithFormat:@"urloffeed = %@", self.Feedlink];
NSManagedObjectContext *context = [self managedObjectContext];
if ([[context executeFetchRequest:fetchRequest error:NULL] count] == 0) {
// Create a new managed object
NSManagedObject *newDevice = [NSEntityDescription insertNewObjectForEntityForName:@"demo" inManagedObjectContext:context];
[newDevice setValue:self.Name forKey:@"nameofentry"];
[newDevice setValue:self.WebsiteName forKey:@"sitename"];
[newDevice setValue:self.Feedlink forKey:@"urloffeed"];
NSError *error = nil;
// Save the object to persistent store
if (![context save:&error]) {
NSLog(@"Can't Save! %@ %@", error, [error localizedDescription]);
}
}
有人请帮我解决这个问题吗?
答:
0赞
Prakash
10/26/2015
#1
您可以使用此表达式检查“null”值,如果该值是“null”,则只需插入空白值,否则传递您正在获取的值。非常简单,代替“strname”,只需传递您的键值即可。
if (strname == nil || strname == (id)[NSNull null])
{
cell.lbltitle.text=@"";
}
0赞
Garry
10/26/2015
#2
将宏定义为 。
#define IS_NOT_NIL_OR_NULL(value) (value != nil && value != Nil && value != NULL && value != (id)[NSNull null])
在将值保存在核心数据中之前,请检查值是否为 null 。
if ([[context executeFetchRequest:fetchRequest error:NULL] count] == 0) {
// Create a new managed object
NSManagedObject *newDevice = [NSEntityDescription insertNewObjectForEntityForName:@"demo" inManagedObjectContext:context];
if (IS_NOT_NIL_OR_NULL(self.Name))
{
[newDevice setValue:self.Name forKey:@"nameofentry"];
} else
{
// Handle else case . get self.name value is null here .
}
if (IS_NOT_NIL_OR_NULL(self.WebsiteName))
{
[newDevice setValue:self.WebsiteName forKey:@"sitename"];
} else
{
// Handle else case . get self.WebsiteName value is null here .
}
if (IS_NOT_NIL_OR_NULL(self.Feedlink))
{
[newDevice setValue:self.Feedlink forKey:@"urloffeed"];
} else
{
// Handle else case . get self.Feedlink value is null here .
}
NSError *error = nil;
// Save the object to persistent store
if (![context save:&error]) {
NSLog(@"Can't Save! %@ %@", error, [error localizedDescription]);
}
}
希望它对你有所帮助。
评论
0赞
krina_patel
10/26/2015
我必须在哪里设置此条件?对不起,如果我问的是愚蠢的问题,但我是 iOS 的新手。请帮帮我.
0赞
Garry
10/26/2015
就在核心数据中设置值之前。
0赞
krina_patel
10/27/2015
出现类似 .''IS_NOT_NIL_OR_NULL'在 C99 中无效'
0赞
Garry
10/27/2015
好的,我忘了将宏定义为..#define IS_NOT_NIL_OR_NULL(value) (value != nil && value != Nil && value != NULL && value != (id)[NSNull null]);
0赞
krina_patel
10/27/2015
我收到像这个宏一样的错误。)
1赞
Sauvik Dolui
10/27/2015
#3
取消选中 from CoreData 属性编辑器怎么样?Optional
评论
0赞
krina_patel
10/27/2015
我只想检查 url,所以 url 是字符串。所以,我认为这对我没有帮助。
评论