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

时间:2012-01-24 00:53:25

标签: iphone ios uitableview nsmutablearray nsuserdefaults

我正在使用tableview和东西制作这个应用程序。我想制作一个“收藏夹” - 标签,在细节视图中我想制作一个星形按钮。我已经完成了“添加到收藏夹”的东西,并希望不可能多次向我的favoriteViewController添加一个字符串。

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

这是代码中的一个片段。我想在再次添加之前检查favoriteKey中是否已存在“indexPathRowString”。

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

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

2 个答案:

答案 0 :(得分:3)

您需要NSArray's containsObject:

因为NSString实现NSObject协议方法isEqual:以返回YES两个相同内容的字符串,所以此方法可以正确地为您使用两个具有相同值的不同字符串对象

答案 1 :(得分:1)

您可以使用

进行检查
if (![favoritedAlready containsObject:indexPathRowString])
{
    [favoritedAlready addObject:indexPathRowString];
}