格式不是字符串文字,没有格式参数(不涉及NSLog)

时间:2011-01-17 01:24:51

标签: iphone objective-c nslog

(我是客观的新手,如果这似乎是一个简单的问题,请道歉)

我在这里研究了以下信息

格式不是字符串文字,也不是格式参数

并且大多数响应都涉及NSLog语句。但是,我的错误出现在这一行

NSString *path = [[self applicationDocumentsDirectory] stringByAppendingFormat:[NSString stringWithFormat:@"/%@", [managedObject Name]]];

我正在对一组代码进行故障排除,似乎并不理解为什么会出现错误。对此有任何帮助将不胜感激。

4 个答案:

答案 0 :(得分:4)

下面应该解决它。

NSString *path = [[self applicationDocumentsDirectory] stringByAppendingFormat:[NSString stringWithFormat:@"/%@", [managedObject Name]], nil];

或者

NSString *path = [[self applicationDocumentsDirectory] stringByAppendingFormat:@"/%@", [managedObject Name]];

也应该这样做。

您正在调用两个期望格式参数的方法,您将一个传递给[NSString stringWithFormat]而不是stringByAppendingFormat方法。

答案 1 :(得分:3)

除了其他人所说的,你应该研究一下

- (NSString *)stringByAppendingPathComponent:(NSString *)aString

答案 2 :(得分:1)

您正在使用stringByAppendingFormat,然后使用stringWithFormat。选择一个或另一个。修正:

NSString *path = [[self applicationDocumentsDirectory] stringByAppendingFormat:@"/%@", [managedObject Name]];

答案 3 :(得分:0)

[NSString stringWithFormat:@"/%@", [managedObject Name]

将返回一个字符串,%@已被[managedObject Name]的值替换。因此,方法stringByAppendingFormat没有获取格式化字符串和任何参数。

BTW,惯例是使用以小写字母开头的方法名称,与[managedObject Name]

不同