2013-03-18 67 views
0

我试图做一件没有成功的事情。 我不知道这是一个概念错误还是别的什么。Xcode:NSUserDefaults动态密钥

我在NSUserDefaults中保存了一些数据,但是我想动态地创建密钥,因为我不能事先知道我将拥有多少个密钥,因此会根据其他字符串动态创建它们。

这是为了保存数据:

[defaults setObject:anObject forKey:@"aKey"]; 
[defaults synchronize]; 

这是我在做什么

NSString *myString = @"aString"; 
[defaults setObject:anObject forKey:@"%@",myString]; 
[defaults synchronize]; 

不幸的是,它返回 “太多的参数的方法调用,预计2,有3个”

你认为我有可能做什么? 在此先感谢

回答

1

如果方法需要NSString,则无法指定格式。

更换

[defaults setObject:anObject forKey:@"%@",myString]; 

[defaults setObject:anObject forKey:[NSString stringWithFormat:@"%@", myString]]; 

或者干脆:

[defaults setObject:anObject forKey:myString];