NSUserDefaults 不会存储我的 NSStrings
我试图在我的 NSUserDefaults 中存储几个字符串...无法弄清楚我做错了什么...
-(IBAction)addToFavorite:(id)sender {
NSMutableArray* favoritedAlready = [[[NSUserDefaults standardUserDefaults] objectForKey:@"favorites"] mutableCopy];
NSLog(@"%@",favoritedAlready);
if (![favoritedAlready containsObject:indexPathRowString]) {
[favoritedAlready addObject:indexPathRowString];
[[NSUserDefaults standardUserDefaults] setObject:favoritedAlready forKey:@"favorites"];
[[NSUserDefaults standardUserDefaults] synchronize];
favoritMarkerad.image = [UIImage imageNamed:@"StarFilled.png"];}
else {
[favoritedAlready removeObject:indexPathRowString];
[[NSUserDefaults standardUserDefaults] setObject:favoritedAlready forKey:@"favorites"];
[[NSUserDefaults standardUserDefaults] synchronize];
favoritMarkerad.image = [UIImage imageNamed:@"StarEmpty.png"];
}
当我尝试在另一个视图控制器中加载数组时没有任何反应..
(.h)
NSMutableArray *favorites_;
@property (nonatomic, retain) NSMutableArray *favorites_;
(.m)
@synthesize favorites_;
-(void)makeData{
NSMutableArray* favoritedAlready = [[NSUserDefaults standardUserDefaults] objectForKey:@"favorites"];
[[NSUserDefaults standardUserDefaults] synchronize];
favorites_ = favoritedAlready;}
“NSLog(@”% @“,已收藏);”给出“2012-01-25 14:53:26.360 myApp[2752:1be03] (null)” 有什么想法吗?
i've tried to store a couple of strings in my NSUserDefaults... can't figure out what i'm doing wrong...
-(IBAction)addToFavorite:(id)sender {
NSMutableArray* favoritedAlready = [[[NSUserDefaults standardUserDefaults] objectForKey:@"favorites"] mutableCopy];
NSLog(@"%@",favoritedAlready);
if (![favoritedAlready containsObject:indexPathRowString]) {
[favoritedAlready addObject:indexPathRowString];
[[NSUserDefaults standardUserDefaults] setObject:favoritedAlready forKey:@"favorites"];
[[NSUserDefaults standardUserDefaults] synchronize];
favoritMarkerad.image = [UIImage imageNamed:@"StarFilled.png"];}
else {
[favoritedAlready removeObject:indexPathRowString];
[[NSUserDefaults standardUserDefaults] setObject:favoritedAlready forKey:@"favorites"];
[[NSUserDefaults standardUserDefaults] synchronize];
favoritMarkerad.image = [UIImage imageNamed:@"StarEmpty.png"];
}
when I try to load my array in another viewcontroller nothing happens..
(.h)
NSMutableArray *favorites_;
@property (nonatomic, retain) NSMutableArray *favorites_;
(.m)
@synthesize favorites_;
-(void)makeData{
NSMutableArray* favoritedAlready = [[NSUserDefaults standardUserDefaults] objectForKey:@"favorites"];
[[NSUserDefaults standardUserDefaults] synchronize];
favorites_ = favoritedAlready;}
"NSLog(@"%@",favoritedAlready);" gives "2012-01-25 14:53:26.360 myApp[2752:1be03] (null)"
any ideas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
根据您的评论,问题是您的 NSUserDefaults 中任何时候都没有名为“favorites”的数组。如果它不存在,您可能想创建一个。所以:
Based on your comment, the problem is that there is no array in your
NSUserDefaults
named 'favorites' at any point. Probably you want to create one if it doesn't exist. So:NSMutableArray 在第一点处为 (null),因此您可以
在
mutableCopy
方法之后执行此操作。因此,您将向
NSMutableArray
添加值,而不是将其添加到(空)对象就像 Tommy 所说的
The NSMutableArray is (null) at the first point, so you could do this:
right after the
mutableCopy
method.So you'll be adding values to the
NSMutableArray
instead of adding it to a (null) objectJust like what Tommy said