これは私の問題です。サーバーから返される JSON を使用して iOS を構築しています。問題はありません。すべて正常に動作します。
問題は、プログラムを実行すると、結果を解析するのに長い時間がかかることNSMutableArray
です:これはログです
2013-01-10 12:03:48.627 project[5917:907] <- time begin parser
2013-01-10 12:03:48.755 project[5917:907] <- time finish parser
2013-01-10 12:03:48.756 project[5917:907] <- time begin implement arrays
2013-01-10 12:03:58.522 project[5917:907] <- time finish implement array
ご覧のとおり、配列の実装には非常に時間がかかります。
UI をレスポンシブにするには、キューイングとグランド セントラル ディスパッチを使用する必要があることはわかっていますが、その方法がわかりません。その方法を教えてください。
これが私のviewDidLoad
方法です
- (void)viewDidLoad
{
[super viewDidLoad];
if debug
NSLog(@"<- time begin parser");
endif
NSString *URLStr = @"http://myJsonFile.json";
NSDictionary *myDictwithReturn = [TOCJSONParser awesomeParserWithStringOfYourJSONFile:URLStr]; //really cool parser, i can put it on gitHub if you want
NSArray *speakersArray = [myDictwithReturn objectForKey:@"speakers"];
myArray = [[NSMutableArray alloc]init];
NSLog(@"<- time finish parser");
NSLog(@"<- time begin implement arrays");
for (NSDictionary *myDict in speakersArray) {
_nextSpeaker = [[TOCSpk alloc]init];
[_nextSpeaker setName:[myDict objectForKey:@"name"]];
[_nextSpeaker setBusiness:[myDict objectForKey:@"business"]];
[_nextSpeaker setDesc:[myDict objectForKey:@"desc"]];
[_nextSpeaker setTwitter:[NSURL URLWithString:[myDict objectForKey:@"twitter"]]];
[_nextSpeaker setPicture:[_nextSpeaker retrieveImageFromServer:[myDict objectForKey:@"picture"]]];
[myArray addObject:_nextSpeaker];
}
NSLog(@"<- time finish implement array");
}