2

(我是 Objective c 的新手,如果这似乎是一个简单的问题,我深表歉意)

我在这里研究了以下消息

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

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

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

我正在对一组代码进行故障排除,但似乎不明白为什么这里会出现错误。对此的任何帮助将不胜感激。

4

4 回答 4

4

下面应该修复它。

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

或者

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

也应该这样做。

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

于 2011-01-17T01:27:59.840 回答
3

除了其他人所说的,你应该看看

- (NSString *)stringByAppendingPathComponent:(NSString *)aString
于 2011-01-17T01:41:15.343 回答
1

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

NSString *path = [[self applicationDocumentsDirectory] stringByAppendingFormat:@"/%@", [managedObject Name]];
于 2011-01-17T01:29:03.977 回答
0
[NSString stringWithFormat:@"/%@", [managedObject Name]

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

顺便说一句,约定是使用以小写字母开头的方法名称,不像[managedObject Name]

于 2011-01-17T01:34:13.043 回答