繁体   English   中英

如何检查PList,iPhone中是否已存在数据或对象?

[英]How to check whether data or object already exist in PList, iPhone?

我可以成功添加和删除PList中的对象或数据,但我想知道PList中已存在数据或对象。 我的代码是

NSUInteger countObjectsFromPList;
countObjectsFromPList = [[mdict allKeys] count];
NSLog(@"objects in PList %d", countObjectsFromPList);
for(int i=0; i <= countLawsFromPList; i++){
NSLog(@"\n\n\n%d\n\n\n", i);
//if([objectName isEqualToString:[[mdict allKeys] objectAtIndex:i]])
if(objectName ==[[mdict allKeys] objectAtIndex:i]){
NSLog(@"Already exists");
//NSLog("String is equal");
}
else { 
NSLog(@"Added to Favorites");
} 
}

请任何人帮我解决这个问题。 谢谢

id object = [mdict objectForKey:key];
BOOL exists = (object != nil);

编辑:显然,这还不够清楚。 基本上,使用objectForKey只是在告诉字典“能否给我钥匙key的对象”? 如果该键存在对象,则返回值将为非零。 否则它将为零。 这就是为什么要检查object != nil以了解该对象是否存在于您的键的字典中的原因。 去多喝咖啡

感谢所有的代码答案,但事实证明它们对我没有帮助。 我将代码更正为:

mdict = [[NSMutableDictionary alloc] initWithContentsOfFile:[self doccumentspath]];
NSUInteger countObjectsFromPList = [[mdict allKeys] count];
NSLog(@"Objects in PList %d", countObjectsFromPList);

for(int i=0; i < countObjectsFromPList; i++){
  NSLog(@"\n\n\n%d\n\n\n", i);
  NSLog(@"from viewWillAppear- Object Name- %@", object);
  if([object isEqualToString:[[mdict allKeys] objectAtIndex:i]]){   
    NSLog(@"Already exists");       
    exists = YES;
    NSLog(@"The value of the bool is %@\n", (exists ? @"YES" : @"NO"));
  }
}

我要做的是在for循环中删除= 现在一切正常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM