0

我目前正在运行安装了 Xcode 4.4 的 Mountain Lion OS X 10.8。我正在运行 iOS 5.1 模拟器。我在学习 Objective-C 和 Xcode 时使用 Buzztouch 作为学习工具。编译时收到以下警报,但构建成功。但是,我想确切地知道发生了什么以及如何补救这种情况。感谢您提供的任何帮助。这是我收到的代码和警报:

BT_fileManager.m

  1. 格式字符串未使用数据参数 [BT_debugger showIt:self:[NSString stringWithFormat:@"readTextFileFromBundleWithEncoding ERROR using encoding NSUTF8StringEncoding, try NSISOLatin1StringEncoding", @""]];

  2. 格式字符串未使用数据参数 [BT_debugger showIt:self:[NSString stringWithFormat:@"readTextFileFromCacheWithEncoding ERROR using encoding NSUTF8StringEncoding, try NSISOLatin1StringEncoding", @""]];

BT_camera_email.m

  1. 语义问题将“BT_camera_email *”发送到不兼容类型“id”的参数

if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { NSLog(@"is camera ok"); UIActionSheet *photoSourceSheet = [[UIActionSheet alloc] initWithTitle:@"Select Image Source" delegate:self

再次,谢谢。

格雷格

4

1 回答 1

1

但是,我不知道 Buzztouch 可能是什么...... :-)

第一个警告相当简单。在格式字符串中,有以“%”符号开头的占位符来指示应替换数据值的位置。例如,要替换一个字符串,可以使用 '%@'。在您展示的示例中,没有占位符,但有数据值——空字符串。编译器警告说,您表示要放入由创建的新字符串中的东西stringWithFormat:不会。

为了确定第二个,我想查看声明的 .h 文件,BT_camera_email但我最好的猜测是它不采用UIActionSheetDelegate协议。的描述initWithTitle:...说第二个参数应该是id<UIActionSheetDelegate>,这可能是被抱怨的。

于 2012-08-07T17:54:28.933 回答