まず、SO コミュニティに感謝します。私は多くのことを学びました。ただし、私はまだ Objective C の初心者なので、質問があります。これが無知な質問である場合は、事前に謝罪してください。
Web API からNSURLConnection
カスタム オブジェクト ( ) を取得するためにサブクラス化しました。myObject
各オブジェクトは、完了するために API を 2 回呼び出す必要があります。最初の呼び出しは、オブジェクトのリストから id プロパティを取得することです。2 番目の呼び出しは、その ID を使用して別の URL を構築し、残りのmyObject
プロパティを設定するためのものです。すべてがうまく機能していますが、tableViewsection based on a completion of all of the
myObject objects within an
NSMutableArray` をリロードするための私のアプローチの正しさについて質問があります。
myObjects
これは、すべての不完全なものを正常にインスタンス化してフェッチし、それらを に追加した後に呼び出すメソッドですNSMutableArray
。の各インスタンスの 2 番目のネットワーク呼び出しでのみ使用/設定されるmessageString
のプロパティです。したがって、完全性を確認するために使用すると考えました。は変更可能で、すべての不完全な. それだけです。サブクラス化された の作成を処理するストア。myObject
myObject
arrayOfMyObjects
myObjects
MyStoreClass
NSURLConnections
- (void)fetchDetails {
void (^completionBlock)(myObject *obj, NSError *err, int statusCode) = ^(myObject *obj, NSError *err, int statusCode) {
if (!err && statusCode == 200) {
NSArray *completionCheckArray = [arrayOfMyObjects filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"messageString = %@", [NSNull null]]];
if ([completionCheckArray count] == 0) {
[[self tableView] reloadSections:[NSIndexSet indexSetWithIndex:1] withRowAnimation:UITableViewRowAnimationAutomatic];
}
} else if (!err && statusCode != 200) {
[self statusCodeError:statusCode];
} else {
[self generalError:err];
}
};
for (myObject *mobj in arrayOfMyObjects) {
[[MyStoreClass sharedStore] fetchDetails:mobj withCompletion:completionBlock];
}
}
これは機能しますが、myObjects
. もしそうなら、すべての完了をチェックするための代替アプローチはmyObjects
何ですか?