Objective-C代码中else分支里的nil含义是什么?
这段Objective-C代码里else分支的nil到底啥意思?
先看你贴的这段代码逻辑:它是个类方法,用来生成临时文件路径,尝试把传入的data写入这个路径下的文件,成功就返回路径。
但else分支里的nil完全是多余的无效代码——它只是孤零零写了个nil,既没赋值给任何变量,也没作为返回值抛出去,运行的时候不会产生任何实际作用,甚至编译器可能直接把它忽略掉。
而且这段代码本身逻辑有问题:创建文件失败后,这个nil啥用没有,程序会继续走到最后一行return tmpPath,结果就是不管文件创建成没成功,都会返回那个临时路径字符串。但如果创建失败的话,这个路径对应的文件根本不存在,调用方拿到路径也没用,还没法判断操作是否成功。
正常来说,这里应该写成return nil;,这样调用方就能通过返回值是不是nil来判断文件有没有创建成功。
内容的提问来源于stack exchange,提问作者ccd
相关产品推荐
相关产品推荐

