AFNetworking ライブラリを使用してサーバーから JSON フィードを取得し、UIPickerView
. は@property
classChoices
にNSArray
入力するUIPickerView
ために使用される です。これにより、Web 呼び出しは 1 回だけ実行されます。ただし、インスタンス変数が返されるまでにブロックが終了していないため、ゲッターは nil を返し、後でプログラムがクラッシュする原因になります。これを修正するための助けをいただければ幸いです。追加情報が必要な場合はお知らせください。
PickerViewController.m classChoices ゲッター
- (NSArray *)classChoices {
if (!_classChoices) {
// self.brain here refers to code for the SignUpPickerBrain below
[self.brain classChoicesForSignUpWithBlock:^(NSArray *classChoices) {
_classChoices = classChoices;
}];
}
return _classChoices;
}
SignUpPickerBrain.m
- (NSArray *)classChoicesForSignUpWithBlock:(void (^)(NSArray *classChoices))block {
[[UloopAPIClient sharedClient] getPath:@"mobClass.php" parameters:nil success:^(AFHTTPRequestOperation *operation, id responseJSON) {
NSLog(responseJSON);
if (block) {
block(responseJSON);
}
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
if (block) {
block(nil);
}
}];
}