Objective c 在设置NSUserDefault时,如何混合使用NSString和直接文本输入?

Objective c 在设置NSUserDefault时,如何混合使用NSString和直接文本输入?,objective-c,nsuserdefaults,Objective C,Nsuserdefaults,我有一段简单的代码,但似乎找不到正确的语法: NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSString *savedPrefix = [defaults stringForKey:@"stringPrefix"]; [defaults setObject:@"%@red_2-3.aiff" savedPrefix, forKey:@"myDefault"]; …所以我要做的就是将“myDefault”设

我有一段简单的代码,但似乎找不到正确的语法:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *savedPrefix = [defaults stringForKey:@"stringPrefix"];
[defaults setObject:@"%@red_2-3.aiff" savedPrefix, forKey:@"myDefault"];
…所以我要做的就是将“myDefault”设置为(my NSString savedPrefix)+“red_2-3.aiff”


有没有人能帮我调整一下语法/方法,使之有效?谢谢

您需要使用
stringWithFormat
实例化
NSString
。类似这样的方法会奏效:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *savedPrefix = [defaults stringForKey:@"stringPrefix"];
[defaults setObject:[NSString stringWithFormat:@"%@red_2-3.aiff", savedPrefix] forKey:@"myDefault"];
我更喜欢打破这个,像这样:(这是一样的东西,更粒化)


您需要使用
stringWithFormat
实例化
NSString
。类似这样的方法会奏效:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *savedPrefix = [defaults stringForKey:@"stringPrefix"];
[defaults setObject:[NSString stringWithFormat:@"%@red_2-3.aiff", savedPrefix] forKey:@"myDefault"];
我更喜欢打破这个,像这样:(这是一样的东西,更粒化)


感谢您的及时回复和良好的解释!解决了我的问题。感谢您的及时回复和良好的解释!解决了我的问题。
[defaults setObject:[savedPrefix stringByAppendingString:@"red_2-3.aiff"] forKey:@"myDefault"];
[defaults setObject: [savedPrefix stringByAppendingString: @"red_2-3.aiff"]
             forKey: @"myDefault"]