0
我讀,如果塊要外部修改變量,此變量必須通過使用關鍵字__block
進行說明,因爲它必須被複制到塊本身堆。在iOS中方框如何外面修改變量,而無需使用__block
但是如果我不希望使用__block
,仍然可以得到修改的變量,有沒有辦法?
我做了一些想法,也許我可以將該變量設置爲global
或static
而不是auto
,這樣它將被存儲在靜態存儲區中。
或者,我可以將其設置爲指針,並指向其在堆中分配的一些內容?我試過這個不起作用的情況,我想知道爲什麼。
你是什麼意思是「必須」和「必須」?你想盡量避免什麼?它不需要,但它可能有助於提高性能 –
@ JulianF.Weinert,我的理解是,爲了將來的使用,ARC會自動將塊的變量複製到堆上,否則塊和它的變量將在堆棧上釋放。 – Boris
是的,您可以在塊內修改外部全局或靜態變量。 – newacct