为什么警告仅在我的iPhone未连接到Mac时出现?

时间:2015-06-30 12:56:55

标签: ios iphone xcode compiler-warnings

不是重复,但警告信息是相同的。我读过这篇文章并没有帮助。

performSelector may cause a leak because its selector is unknown

我没有使用 performSelector ,但我得到了同样的警告,就像我一样。

Xcode 6.3中的警告消息是

 PerformSelector may cause a leak because its selector is unknown

代码是

NSString *string=[NSString stringWithFormat:@"%tu", data.length];
NSLog(@" Expected :%lli",[response expectedContentLength]);

data.length应返回NSUInteger

expectedContentLength是 long long

当我将%tu更改为%zu时,我收到一条新的警告消息

 Values of type 'NSUInteger' should not be used as format arguments; add an explicit cast to 'unsigned long' instead

1 个答案:

答案 0 :(得分:1)

警告是关于NSUInteger的大小变化,具体取决于CPU架构,可能只发生在版本构建期间(我理解为“未连接到Mac”),因为版本构建包含所有有效的CPU体系结构(32位和64位),而Debug构建仅包含用于调试的设备的体系结构。 (如果您没有更改默认的 Build Settings ),那就是这样。

NSUInteger更改大小时,假设它是unsigned long并强制使用强制转换:

NSString *string=[NSString stringWithFormat:@"%lu", (unsigned long)data.length];