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