Chl*_*bta -1 cocoa objective-c nsuserdefaults ios
我有一个按钮,允许用户将帖子标记为收藏.
这是我的代码:
+(NSMutableArray*) getFavoritePostsArray {
NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults];
NSMutableArray *tempArray = [userDefault mutableArrayValueForKey:@"favoritePostArray"];
if ([tempArray count] == 0) {
return [[NSMutableArray alloc] init];
}
else {
return tempArray;
}
}
+(BOOL)addFavoritePost:(CostumSDPost *)post {
NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults];
NSMutableArray *tempArray = [GlobalFunctionAndVariable getFavoritePostsArray];
NSDictionary *tempPost = @{
@"title" : post.title,
@"ID": post.ID,
@"imageURL": post.imageURl,
@"viewsNumber" : post.viewsNumber,
@"content" : post.content,
@"date": post.date,
@"authorName": post.authorName,
@"categoryList": post.categoryList,
@"commentsArra": post.commentsArray,
@"commentsStatus": post.commentsStatus,
@"commentsNumber":[[NSString alloc] initWithFormat:@"%lu", post.commentsNumber],
};
[tempArray addObject:tempPost];
//[userDefault removeObjectForKey:@"favoritePostArray"];
//[userDefault synchronize];
[userDefault setObject:tempArray forKey:@"favoritePostArray"];
//[userDefault synchronize];
return YES;
}
Run Code Online (Sandbox Code Playgroud)
此代码只适用于第一次,当favoritePostArray为空且用户将第一个帖子添加到数组时.
否则,如果我按下另一次添加收藏夹按钮添加其他人发布到favoritePostArray我的应用程序被阻止,并且没有显示错误.我已经使用了调试点,我认为我的应用程序在这一行被阻止了
[userDefault setObject:tempArray forKey:@"favoritePostArray"];
那我错过了什么?
mutableArrayValueForKey是一个KVC方法,而不是NSUserDefaults上的方法.试试这个:
NSMutableArray *tempArray = [[userDefault arrayForKey:@"favoritePostArray"] mutableCopy];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
92 次 |
| 最近记录: |