自从升级到最新的Xcode 3.2.1和Snow Leopard之后,我一直收到警告

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

从以下代码:

NSError *error = nil;

if (![self.managedObjectContext save:&error]) 
{
    NSLog([NSString stringWithFormat:@"%@ %@, %@", 
       errorMsgFormat, 
       error, 
       [error userInfo]]);      

}

如果errorMsgFormat是带有格式说明符的NSString(例如:"print me like this: %@"),那么上面的NSLog调用有什么问题?建议用什么方法来修复它,这样就不会产生警告?

推荐答案

你的括号是否正确嵌套?我不认为NSLog()人喜欢只接受一个论点,这就是你要通过的论点.此外,它已经为您设置了格式.为什么不这么做呢?

NSLog(@"%@ %@, %@", 
   errorMsgFormat, 
   error, 
   [error userInfo]);              

或者,既然你说errorMsgFormat是一个带有一个占位符的格式字符串,你是想这么做吗?

NSLog(@"%@, %@", [NSString stringWithFormat:errorMsgFormat, error], 
   [error userInfo]);              

Objective-c相关问答推荐

将谷歌 map 添加为子视图会使 iOS 应用程序因 exc_bad 崩溃

将 Objective-C 指针类型NSString *转换为 C 指针类型CFStringRef(又名const struct __CFString *)需要桥接转换

将 NSNumber 转换为 NSDecimalNumber

iOS 应用程序下一个键不会转到下一个文本字段

有没有办法清除 UIImage 类使用的缓存?

烦人的[Environment: Sandbox]提示

Facebook 添加测试用户和管理员是:(待定),这是什么意思?

UIRefreshControl - 在 iOS 7 中 pull 刷新

Objective-C:如何从子类访问父属性?

UIWebView 不会zoom 内容以适应

在 iPhone 应用程序中使用 RestKit 的最佳方式

Objective-C 的文档生成器?

NSSet 到 NSArray 转换调用 objectAtIndex?

使用 OpenCV 在 iOS 中进行透视变换 + 裁剪

在 UITableView 的 iOS 文档目录中列出保存的文件?

Objective-c 协议前向声明

UIImage上的圆角

如何实现全局 iPhone 异常处理?

即使在静音模式下也能在 iPhone 上播放声音

未调用 cellForItemAtIndexPath 但 numberOfItemsInSection 调用