"Thread 1: signal SIGABRT" 序列化 JSON 错误
"Thread 1: signal SIGABRT" error with JSON serialization
我正在尝试使用 Weather Underground API 将天气数据解析到我的应用程序 Xcode 7.3.1、iOS 9.3 和 JSON(但我与其他 API 一样的问题,例如 OpenWeatherMap)。
我在构建我的应用程序时没有收到错误,但是当我在模拟器中调用天气时,我收到了 "Thread 1: signal SIGABRT" 错误。我使用断点来推测我的问题来自序列化。
我已经尝试清理我的项目,但我没有双重连接。
当我下载 运行 this 教程的项目时,我遇到了同样的问题...
这是我的代码:
#import "ViewController.h"
@interface ViewController ()
@property (weak, nonatomic) IBOutlet UIButton *affichermeteo;
@property (weak, nonatomic) IBOutlet UILabel *meteo;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
}
- (IBAction)affichermeteo:(id)sender {
NSData *allCoursesData = [[NSData alloc] initWithContentsOfURL:
[NSURL URLWithString:@"http://api.wunderground.com/api/e5cdee14984e242b/conditions/q/CA/San_Francisco.json"]];
NSError *error;
NSDictionary *allCourses = [NSJSONSerialization
JSONObjectWithData:allCoursesData
options:NSJSONReadingMutableContainers
error:&error];
if( error )
{
NSLog(@"%@", [error localizedDescription]);
}
else {
NSArray *currentobservation = allCourses[@"estimated"];
for ( NSDictionary *theCourse in currentobservation )
{
_meteo.text=theCourse[@"weather"];
}
}
}
@end
我的错误window:
预先感谢您的帮助,抱歉我的英语不好,我是法国人!
我可以使用您的代码获取数据。您缺少 iOS 9 新添加的 App Transport Security 标记。
添加App Transport Security Settings键并标记Allow Arbitrary Loads 到 YES 如下面的屏幕截图所示:
这应该可以解决您的问题。
查看 this link 以了解有关应用程序传输安全的更多信息。
我正在尝试使用 Weather Underground API 将天气数据解析到我的应用程序 Xcode 7.3.1、iOS 9.3 和 JSON(但我与其他 API 一样的问题,例如 OpenWeatherMap)。
我在构建我的应用程序时没有收到错误,但是当我在模拟器中调用天气时,我收到了 "Thread 1: signal SIGABRT" 错误。我使用断点来推测我的问题来自序列化。
我已经尝试清理我的项目,但我没有双重连接。
当我下载 运行 this 教程的项目时,我遇到了同样的问题...
这是我的代码:
#import "ViewController.h"
@interface ViewController ()
@property (weak, nonatomic) IBOutlet UIButton *affichermeteo;
@property (weak, nonatomic) IBOutlet UILabel *meteo;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
}
- (IBAction)affichermeteo:(id)sender {
NSData *allCoursesData = [[NSData alloc] initWithContentsOfURL:
[NSURL URLWithString:@"http://api.wunderground.com/api/e5cdee14984e242b/conditions/q/CA/San_Francisco.json"]];
NSError *error;
NSDictionary *allCourses = [NSJSONSerialization
JSONObjectWithData:allCoursesData
options:NSJSONReadingMutableContainers
error:&error];
if( error )
{
NSLog(@"%@", [error localizedDescription]);
}
else {
NSArray *currentobservation = allCourses[@"estimated"];
for ( NSDictionary *theCourse in currentobservation )
{
_meteo.text=theCourse[@"weather"];
}
}
}
@end
我的错误window:
预先感谢您的帮助,抱歉我的英语不好,我是法国人!
我可以使用您的代码获取数据。您缺少 iOS 9 新添加的 App Transport Security 标记。
添加App Transport Security Settings键并标记Allow Arbitrary Loads 到 YES 如下面的屏幕截图所示:
这应该可以解决您的问题。
查看 this link 以了解有关应用程序传输安全的更多信息。