Iphone 如何计算保存到NSUserDefault中的对象数?

Iphone 如何计算保存到NSUserDefault中的对象数?,iphone,objective-c,Iphone,Objective C,我有一个关于默认的问题。目前,我想写一个函数,将最喜欢的学校保存到一个列表中 我有学校名称和学校Id。因此每次保存时,学校名称+学校Id将是一个字典对象 然后,我将id作为密钥保存到NSUserDefault中。我想知道我保存到NSUserDefault中的对象数。或者,由于每个键都不同,如何将所有对象从NSUserDEfault中取出。请帮帮我。下面是我的代码: NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults

我有一个关于默认的问题。目前,我想写一个函数,将最喜欢的学校保存到一个列表中

我有学校名称和学校Id。因此每次保存时,学校名称+学校Id将是一个字典对象

然后,我将id作为密钥保存到NSUserDefault中。我想知道我保存到NSUserDefault中的对象数。或者,由于每个键都不同,如何将所有对象从NSUserDEfault中取出。请帮帮我。下面是我的代码:

NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults];


NSMutableDictionary *schools = [[NSMutableDictionary alloc] init];
[schools setObject:schoolName forKey:kSchoolName];
[schools setObject:schoolID forKey:kSchoolID];

[userDefault setObject:schools forKey:schoolID];

您存储了多少个对象?也许这不是
NSUserDefaults
的最佳用途

但要直接回答你的问题:

NSUInteger count = 
  [[[NSUserDefaults standardUserDefaults] dictionaryRepresentation] count];

你会想用同一个键来存储你的学校词典。我是说

[userDefault setObject:schools forKey:@"Schools List"];
然后去取回它

    NSDictionary *schools = [userDefault ObjectforKey:@"Schools List"];
   [[schools allkeys]count];

这将为您提供计数。

在这种情况下,我发现将整个数组存储在NSUserDefauts(如“Favorite_schools”或其他内容)中更容易,并使用它将数组保存到
NSUserDefaults
这里有很好的解释。它更容易,而且您不必保存用于保存的任何密钥。如果您的对象也有应该保存的数组,请记住也要将
NSCoding
添加到数组中的对象。回答不错,我不知道可以打印所有保存的项目。当我尝试使用po[[NSUserDefaults standardUserDefaults]dictionaryRepresentation]count]打印时,我得到了一个19位数字在调试屏幕中,如果我使用NSDictionary*defaultDict=[[NSUserDefaults standardUserDefaults]dictionaryRepresentation]从standardUserDefaults创建字典;在变量窗口中查看它,它显示275个键/值对,包括像AppleLocale这样的普通Mac键/值对。19位数字是一个地址。。。对NSInteger的强制转换给出的问题是,如何获取
NSUserDefaults
中所有项目的列表,而不是如何保存和加载单个对象。这是离题的。