[英]NSUserDefaults won't store my 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"];
}
當我嘗試將我的數組加載到另一個viewcontroller中時,什么都沒有發生。
(.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);” 給“ 2012-01-25 14:53:26.360 myApp [2752:1be03](空)”有什么想法?
根據您的評論,問題在於您的NSUserDefaults
沒有任何名為“收藏夾”的數組。 如果不存在,可能要創建一個。 所以:
-(IBAction)addToFavorite:(id)sender {
// get a mutable copy of the stored array, if there is one
NSMutableArray* favoritedAlready = [[[NSUserDefaults standardUserDefaults]
objectForKey:@"favorites"] mutableCopy];
// if there wasn't a stored array then go ahead and create one to store
if(!favoritedAlready)
favoritedAlready = [NSMutableArray array];
/* ... rest of stuff here ... */
if (![favoritedAlready ...
NSMutableArray在第一點是(null),因此您可以執行以下操作:
if (favoritedAlready == nil) {
favoritedAlready = [[NSMutableArray alloc] init];
}
在mutableCopy
方法之后。 因此,您將向NSMutableArray
添加值,而不是將其添加至(空)對象
就像湯米說的
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.