存档时Xcode中存在几个键入问题的问题

use*_*859 5 xcode type-conversion

在构建时我没有得到任何警告,但在归档时,我得到了很多涉及stringWithFormat的输入警告和一个使用NSNotFound的问题.我能够解决除了一个之外的所有stringWithFormat问题,并且仍然被NSNotFound问题困扰.这些列在下面.谢谢你的帮助

以下代码......

    if ([[NSString stringWithFormat:@"%.*s", [data length], [data bytes]] isEqualToString:@"Success"]) {
        return YES;
    } 
Run Code Online (Sandbox Code Playgroud)

为格式字符串生成此警告...

字段精度应该是'int'类型,但参数的类型为'NSUInteger'(又名'unsigned long')

以下代码......

    if (![_response rangeOfString:@"|TreatmentCards|0|"].location == NSNotFound) {
         return NO;

    }
Run Code Online (Sandbox Code Playgroud)

生成...

常量'NSNotFound'(9223372036854775807)与'int'类型表达式的比较始终为false

小智 0

我在获取可变数组的索引时遇到了这个问题。此链接有助于理解该问题。问题的根源在于返回的数据类型永远不会命中NSNotFound。相反,将其设置为:

NSUInteger location = [_response rangeOfString:@"|TreatmentCards|0|"].location;

if (location != NSNotFound) {
    return NO;
}
Run Code Online (Sandbox Code Playgroud)

可能有一种更干净的方法,但这应该可行。如果您声明数据类型变量的长度,它也可以用于解决上述问题int