for (NSString * district in allLinedStrings) {
PO1(district);
[self.mainLock lock];
CLGeocoder * geocode= [[CLGeocoder alloc]init];
[geocode geocodeAddressString:district completionHandler:^(NSArray *placemarks, NSError *error)
{
for (CLPlacemark * thePlace in placemarks)
{
[self handlePlacemark:thePlace];
}
[self.mainLock unlock];
}];
}
我想同步運行geocodeAddressString,我這樣做。不知何故,我有錯誤的僵局。但是,怎麼了?這個鎖定方案有什麼問題
*我想同步運行geocodeAddressString,我這樣做* - 的API是異步的一個原因。你應該遵循這個原則,並重新啓動你的程序。例如等待'allLinedStrings'數組,處理下一個完成時調用... – justin 2012-07-06 09:35:52