2016-07-29 27 views
1

Weather Underground APIを使用して天気データをXcode 7.3.1、iOS 9.3、JSONでアプリケーションに解析しようとしています(ただし、他のAPI OpenWeatherMapなど)。JSONシリアライズで「スレッド1:signal SIGABRT」エラーが発生しました

アプリをビルドするときにエラーは発生しませんが、シミュレータで天気を呼び出すと「スレッド1:シグナル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 

マイエラーウィンドウ:

Here

あなたの助けを前にありがとう、私の英語のために申し訳ありません、私はフランス語です!

+0

どのラインがクラッシュしていますか?あなたの質問を編集してクラッシュからスタックトレースを追加できますか? (クラッシュの原因となっている行を特定するために例外にブレークポイントを設定する必要があるかもしれません) –

+0

クラッシュは "options:NSJSONReadingMutableContainers"行に表示されます。 – Jeremy

+0

これは、サーバーがあなたにひどく形成されたJSONを与えていることを示唆しています。コンテンツを別のJSONパーサまたはJSONバリデータにフィードできますか? –

答えて

0

コードを使用してデータを取得できます。あなたは、iOS 9の新しく追加されたApp Transport Securityフラグがありません。

以下のスクリーンショットのように任意のロード YES することができのApp交通セキュリティ設定キーを追加し、をマーク:

enter image description here

これはあなたの問題を解決する必要があります。

thisのリンクを確認して、App Transport Securityの詳細を確認してください。

+0

ありがとうございました!これは私の問題を解決しました! – Jeremy

関連する問題