这是问题所在:
应用程序在第二行崩溃,我得到了EXC_BAD_ACCESS异常.
NSURL *url = [NSURL URLWithString:@"..."];
NSError *error = nil;
NSData *data = [NSData dataWithContentsOfURL:url
options:NSDataReadingMapped
error:&error];
NSLog(@"Error: %@", error);
NSLog(@"%@", [data length]);
Run Code Online (Sandbox Code Playgroud)
我有:
Error: (null)
Program received signal: “EXC_BAD_ACCESS”.
Run Code Online (Sandbox Code Playgroud)
任何的想法?
的数据的长度是无符号整数,而不是一个对象,所以必须使用适当的格式说明.所以:
NSLog(@"%lu", (unsigned long)[data length]);
Run Code Online (Sandbox Code Playgroud)
将工作.有关更多信息,请参阅文档中的 NSLog格式说明符.
此外,error除非方法指示错误状态,否则不应检查(请参阅报告错误的每种方法的相应文档).即使没有发生错误,它也可能包含意外数据.所以:
if( !data ) {
NSLog(@"An error must have occurred: %@, %@", error, [error userInfo]);
} else {
NSLog(@"The data length: %lu", (unsigned long)[data length]);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1346 次 |
| 最近记录: |