BOOL类型指针的初始化警告

时间:2014-10-05 14:04:48

标签: objective-c xcode

我收到了关于类型' BOOL *'的指针初始化的新警告。 (又名' bool *')从常量布尔表达式中为空。这是引起我以前见过的警告的代码?

if ([[NSFileManager defaultManager]fileExistsAtPath:filePath isDirectory:NO]) {

1 个答案:

答案 0 :(得分:7)

在方法fileExistsAtPath:isDirectory:isDirectory是一个按引用返回参数,即它返回一个Bool,指示路径是否是目录。

来自Apple Docs:

  

isDirectory:返回时,如果path是目录或者最终路径元素是指向目录的符号链接,则包含YES,否则包含NO。如果path不存在,则返回时该值未定义。如果您不需要此信息,请传递NULL。

使用:

BOOL isDirectory;
if ([[NSFileManager defaultManager]fileExistsAtPath:filePath isDirectory:& isDirectory]) {
    if (isDirectory) {
        // Code for the directory case
    }
    else {
        // Code for the file case
    }
    ...
}

如果您不想知道路径是否指向目录,请使用:

- (BOOL)fileExistsAtPath:(NSString *)path