检查 NSUserDefault 中是不是已经存在 NSString/NSMutableArray?

Posted

技术标签:

【中文标题】检查 NSUserDefault 中是不是已经存在 NSString/NSMutableArray?【英文标题】:Check if NSString/NSMutableArray already exists in a NSUserDefault?检查 NSUserDefault 中是否已经存在 NSString/NSMutableArray? 【发布时间】:2012-01-24 00:53:25 【问题描述】:

我正在使用 tableview 和其他东西制作这个应用程序。我想制作一个“收藏夹”选项卡,并在详细视图中制作一个星形按钮。我已经完成了“添加到收藏夹”的内容,并且希望无法多次将字符串添加到我的 favoriteViewController。

基本上,我想检查我的 NSUserDefaults 是否在其 NSMutableArray 中包含与表视图中的 indexPath.row 匹配的某个字符串。真的很难解释……

这是代码中的一个 sn-p。我想在再次添加之前检查“indexPathRowString”是否已经存在于 favoriteKey 中。

-(IBAction)addToFavorite:(id)sender 
    NSMutableArray* alreadyFavourites = [[[NSUserDefaults standardUserDefaults] objectForKey:@"favoriteKey"] mutableCopy];
    [favoritedAlready addObject:indexPathRowString];
    [[NSUserDefaults standardUserDefaults] setObject:alreadyFavourites forKey:@"favoriteKey"];
    [[NSUserDefaults standardUserDefaults] synchronize];

非常感谢您的回答,我真的需要解决这个问题! :)

【问题讨论】:

【参考方案1】:

你想要NSArray'scontainsObject:

因为 NSString 实现了NSObject 协议方法isEqual: 来为两个相同内容的字符串返回YES,所以这个方法可以正确地为你处理两个相同值的不同字符串对象。

【讨论】:

【参考方案2】:

你可以检查使用

if (![favoritedAlready containsObject:indexPathRowString])

    [favoritedAlready addObject:indexPathRowString];

【讨论】:

所以你的意思是喜欢; if ([alreadyFavourites containsObject: indexPathRowString] == NO) //添加到数组 ?

以上是关于检查 NSUserDefault 中是不是已经存在 NSString/NSMutableArray?的主要内容,如果未能解决你的问题,请参考以下文章

如果 Swift 中存在 NSUserDefault,则尝试更新 CLLocation

如何检查记录是不是已经存在,然后在 laravel 中更新或插入?

检查一个事件是不是已经存在

检查python列表中是不是已经存在一个数字

检查值是不是已经存在

如何检查php中是不是已经存在mysql数据库? [复制]