ios geocodeAddressString在阻塞期间修改全局变量

ios geocodeAddressString在阻塞期间修改全局变量,ios,objective-c-blocks,clgeocoder,Ios,Objective C Blocks,Clgeocoder,我知道对CLGeocoder geocodeAddressString的调用是异步的,传入一个块以在完成时处理回调。我还知道,块内唯一可变的变量是局部块变量。但我需要将生成的CLPlacemarks存储在全局NSMutableArray变量中,我无法确定这是如何实现的。任何_块变量只能在同一个方法中访问,但在它们有任何值(即在块内)时,我无法为全局数组分配任何值。在块之后,_块变量可能没有任何值,因为调用异步geocodeAddressString时会立即返回 如何存储调用结果,以便用于更新UI

我知道对CLGeocoder geocodeAddressString的调用是异步的,传入一个块以在完成时处理回调。我还知道,块内唯一可变的变量是局部块变量。但我需要将生成的CLPlacemarks存储在全局NSMutableArray变量中,我无法确定这是如何实现的。任何_块变量只能在同一个方法中访问,但在它们有任何值(即在块内)时,我无法为全局数组分配任何值。在块之后,_块变量可能没有任何值,因为调用异步geocodeAddressString时会立即返回


如何存储调用结果,以便用于更新UITableView?

好,已解决。我错误地推断(从我对块的阅读中)属性和实例变量不能在块的范围内修改。在我的例子中,我无法修改iVar数组的原因是我没有分配/初始化它。一旦我这样做了,我就能够分配值并在块之外看到它们,例如在我的表格视图的CellForRowatineXpath方法中

向任何可能被我最初的假设误导的人道歉!为了记录在案,我确实认为Apple docs re blocks&variables上的文本有点误导……它提到的唯一可变变量是_block函数级变量,而它说所有其他变量都“可以访问”,我认为这意味着“只读”(我知道getter和setter都是访问器,但上下文很混乱)。

您总是访问(即读取)对象指针变量以向其发送消息或访问其指向的对象的字段。更改变量意味着分配给它。