繁体   English   中英

在目标C中返回1

[英]Return 1 in objective-c

通常,在Objective-C中返回0是正常的,但是当我编写这样的代码时这意味着什么呢?

if(written){
        NSLog(@"write failed: %@", [error localizedDescription]);
        return 1;
    };

返回1是什么意思? 这是整个代码// //在此处插入代码... NSLog(@“ Hello,World!”);

    NSURL *url = [NSURL URLWithString:@"http://www.google.com/images/logos/ps_logo2.png"];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    NSError *error = nil;
    NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:NULL error:&error];

    if(!data){
        NSLog(@"fetch failed:%@", [error localizedDescription]);
        return 1;
    }

    NSLog(@"The file is %lu bytes", (unsigned long)[data length]);

    BOOL written = [data writeToFile:@"/tmp/google.png" options:0 error:&error];

    if(written){
        NSLog(@"write failed: %@", [error localizedDescription]);
        return 1;
    }

    NSLog(@"Success");

}
return 0;

}

在这种情况下,它没有任何意义……它意味着您的意思。 在许多库调用中,失败将是-1或0,其他调用0是成功,而非零是错误...但是没有上下文,您的问题就无法回答。

在您的情况下,您在数据对象上调用方法writeToFile:options:error:如果成功,则此方法返回YES,否则返回NO。 以下几行:

if(written){
    NSLog(@"write failed: %@", [error localizedDescription]);
    return 1;
}

似乎是为了返回错误。 意思是,如果您的方法成功,它将返回1,否则它将返回0。因此,我建议将写入更改为!

if(!written){
    NSLog(@"write failed: %@", [error localizedDescription]);
    return 1;
}

然后写入NO,因为writeToFile方法失败,您将获得一个返回值1,并带有一条Log消息,该消息告诉您[error localizedDescription]给出的错误描述

这很有用,因为您可以确定写入是否成功。 根据每次返回特定错误代码所产生的错误,您还可能具有多个不同的return值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM