1

我开始用这里推荐的书学习Objective-C(在Objective-C中编程),我有两个问题:

例如在复制文件的方法中:

NSString *path, newPath;
NSFilemanager;

if([fm copyItemToPath: path toPath newPath error: NULL] == NO)
{
    MSLOG(@"The file does not exist");
}
  1. if 中的错误部分的目的是什么以及为什么在示例中谁从书中获取它为空
  2. 我不明白 if 语句中的 NO 的含义
4

2 回答 2

4

NO是方法的返回值copyItemToPath。如果文件复制操作不成功,则返回NO(与 相同)。false

错误表示返回的NULL错误在这种情况下并不重要,可以忽略。否则,您将指针传递给NSError对象:

NSError *error;
if([fm copyItemToPath: path toPath newPath error: &error] == NO) {
  NSLog(@"Error is %@", [error.localizedDescription]);

....

错误信息返回函数返回值为 的原因false

于 2013-04-02T18:49:45.433 回答
1

您首先需要清理代码: 的两个声明NSString都是指针,您需要为 声明一个变量指针NSFileManager,您的方法缺少 a :,并且if文本应该是NSLog

所以我们有:

NSString *path, *newPath;
NSFilemanager *fm;

if([fm copyItemToPath: path toPath: newPath error: NULL] == NO)
{
    NSLog(@"The file does not exist");
}

NULLforerr是默认操作,for是BOOL代码YES成功还是NO失败。

==NO是返回值的故障安全。因为有时它是1or0trueor false,这可能会导致错误。

于 2013-04-02T18:53:38.527 回答