我正在尝试加载和存储(读取和写入)歌曲信息库,我不知道哪种存储方法会更有效.最初,我将我创建的NSArray存储到NSUserDefault,允许读/写访问.但是,在研究了iTunes如何存储其库信息之后,我考虑过从XML文件中读取和写入.哪个更容易实现,更有效的速度/内存使用明智?任何帮助将不胜感激..
如果我这样做
NSArray * myArray = [[NSArray alloc] init];
myArray = [[NSUserdefaults standardUserDefaults] objectForKey:@"array"];
[myArray release];
Run Code Online (Sandbox Code Playgroud)
我在破坏存储在NSUserDefaults钥匙中的价值@"array"吗?它仍然可以提取或不提取吗?是否[[NSUserdefaults standardUserDefaults] objectForKey:@"array"]; return指针或价值?
谢谢你的时间和阅读.我想要做的是弄清楚为什么这NSLog告诉我NSArray无论如何总是空的.我认为问题是我发NSMutableArray错了.您是否可以看看并决定我是否做得对,如果可能的话,给我一个方法将数组传入NSMutableArray?
谢谢!
//Get Defaults
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSArray *favoriteArray = [[defaults objectForKey:@"favorites"] copy];
//Declares Mutable Array
self.favorites = [[NSMutableArray alloc] initWithObjects:favoriteArray, nil];
NSLog(@"array: %@", favorites);
Run Code Online (Sandbox Code Playgroud)
更新:我明白了.事实证明,您必须使用initWithArray声明它,而不是尝试将其添加为对象
解:
- (void)viewDidLoad {
//Get Defaults
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSArray *favoriteArray = [[defaults objectForKey:@"favorites"] copy];
//Declares Mutable Array
self.favorites = [[NSMutableArray alloc] initWithArray:favoriteArray];
[super viewDidLoad];
}
Run Code Online (Sandbox Code Playgroud) 我是iOS开发的新手,无法找到解决此问题的方法:
我有一个有两个视图的应用程序:一个用户输入一些信息(比如一个字符串),另一个视图,其中有一个tableview,其中包含所有输入的字符串(如历史视图).
我想要找到的是存储输入字符串的好方法,然后在用户切换到历史记录后将其加载到表视图数据源中.我尝试使用NSUserdefault但没有取得多大成功.只是弄乱了数据结构等
这是我在主视图上做的事情(用户输入输入字符串的地方):
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSMutableArray *arr1 = [[NSMutableArray alloc] init];
arr1 = [defaults arrayForKey:@"historyNames"];
[arr1 addObject:string];
[defaults setObject:arr1 forKey:@"historyNames"];
Run Code Online (Sandbox Code Playgroud)
从某种原因,我得到一个警告,我读到arr1,老实说,我怀疑这应该工作.
任何人都可以建议我如何修改它以正常工作并实现我正在寻找的东西?
谢谢.
我将.txt文件添加到Documents文件夹,用于使用此处创建的解决方案存储一些数据: 读取文档文件夹中的文本文件 - Iphone SDK
所以现在我可以成功地从这个文件中写入和读取文本,但我还需要有动作清除此文件中的所有文本以使其绝对为空.可能吗?
我目前想检查NSUserDefaults中是否存在用户名,如果不存在我想加载模态视图控制器.问题是即使用户名为nil,它仍然表现得好像存在.这就是我所拥有的:
//Check if the login data exists
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if ([defaults objectForKey:@"username"] != nil) {
//Load Login View if no username is found
NSLog(@"No username found");
LoginViewController *loginView = [[LoginViewController alloc] init];
[self presentViewController:loginView animated:YES completion:nil];
}
else {
NSString *savedUsername = [defaults stringForKey:@"username"];
NSLog(@"Username found: %@", savedUsername);
}
Run Code Online (Sandbox Code Playgroud)
我一直在我的NSLog中得到这个: Username found: (null)
任何帮助,将不胜感激!
我试图将来自服务器的userid存储到userDefaults这是一个NSUserDefault对象,但它总是显示0为userDefaults的值,我曾尝试过使用setObject方法,但仍然无法正常工作,我检查了来自服务器的信息它从不为0.用户id的值永远不会为0,但NSUserDefault仍显示为0.
int userid=[[userdata objectForKey:@"id"] integerValue];
[userDefaults setInteger:userid forKey:@"UserID "];
[userDefaults synchronize];
NSLog(@"UID: %d",[[NSUserDefaults standardUserDefaults] integerForKey:@"UserID"]);
Run Code Online (Sandbox Code Playgroud)
请帮我谢谢.
我正在启用UserDefaults的声音,我管理好然后它工作然后我设置YES/NO值.
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:kSoundEnabled];
[[NSUserDefaults standardUserDefaults]synchronize];
Run Code Online (Sandbox Code Playgroud)
如何为第一个应用程序运行设置YES声音参数,我在哪里可以做到?
我觉得我在这里做的事情显然是错的,但我无法理解!我正在尝试将包含NSStrings和NSNumbers以及NSBooleans的NSMutableDictionary保存到iOS 7.1上的NSUserDefaults中.
这是字典定义:
- (NSMutableDictionary *)hotLevelsDict
{
if ( (!_hotLevelsDict) || ([_hotLevelsDict count] < 1) )
{
_hotLevelsDict = [NSMutableDictionary dictionaryWithDictionary:
@{@100: [NSMutableDictionary dictionaryWithDictionary:@{@"time": @20, @"points": @50, @"complete": @NO}],
@200: [NSMutableDictionary dictionaryWithDictionary:@{@"time": @20, @"points": @100, @"complete": @NO}],
@500: [NSMutableDictionary dictionaryWithDictionary:@{@"time": @20, @"points": @200, @"complete": @NO}],
@1000: [NSMutableDictionary dictionaryWithDictionary:@{@"time": @20, @"points": @200, @"complete": @NO}],
@2000: [NSMutableDictionary dictionaryWithDictionary:@{@"time": @20, @"points": @500, @"complete": @NO}],
@5000: [NSMutableDictionary dictionaryWithDictionary:@{@"time": @20, @"points": @1000, @"complete": @NO}],
@10000: [NSMutableDictionary dictionaryWithDictionary:@{@"time": @20, @"points": @1000, @"complete": @NO}],
@20000: [NSMutableDictionary dictionaryWithDictionary:@{@"time": …Run Code Online (Sandbox Code Playgroud) 我想删除存储在NSUserdefaults中的NSDictionary.我试过这个:
[NSUserDefaults removeObjectForKey:@"bookmarks"];
Run Code Online (Sandbox Code Playgroud)
但是,我的所有收藏都被删除了
如何删除一个喜欢的单个?
我在这里找到了同样的问题 - 通过tableview单元删除NSUserDefault的对象
谢谢大家
nsuserdefaults ×10
ios ×8
objective-c ×7
iphone ×4
xcode ×4
dictionary ×1
if-statement ×1
text ×1
uitableview ×1
xml ×1