ios block常見的錯誤(一)

2022-08-29 20:09:17 字數 656 閱讀 2655

block是oc中的一種資料型別,在ios開發中被廣泛使用。

在實際的使用和面試過程中,經常發現同事或面試者對block了解得不夠透徹,本博文將列舉常見block錯誤來對其加深理解。

示例**1:

1

int i = 10;2

void(^myblock)() = ^;

5 i = 100

;6 myblock();

示例**1的輸出結果不是100, 而是10.原因如下:

1.在定義block時,會在block中建立當前區域性變數內容的副本(拷貝)

2.後續再對該變數的數值進行修改,不會影響block中的數值

示例**1相當於以下**:

int i = 10

;void(^myblock)() = ^;

i = 100

;myblock();

要想將示例**1的輸出為100,需要在定義變數i之前加上__block,如下**所示:

__block int i = 10

;void(^myblock)() = ^;

i = 100

;myblock();

這樣,加上__block關鍵字之後, block中將保持區域性變數的數值變化。

XMPP 常見錯誤一

在xmpp開發中,使用xmppstream進行連線伺服器後,驗證過程中,比較常見的乙個錯誤是 尤其作為初學者 筆者就是這樣的 經常會因為這個問題弄得不著邊際的凌亂.現在筆者將自己的遇到的問題定期整理,總結錯誤,希望對日後的使用有所參考,同時希望能夠對也是在這方面的初學者有所提醒.伺服器的測試版本為o...

乙個常見的錯誤

d software codeblocks test1 main.c 28 warning suggest parentheses around assignment used as truth value wparentheses warning的有道翻譯 警告 建議括號周圍的賦值作為真值 如下 ...

常見的錯誤

http常見錯誤 http 錯誤 400 400 請求出錯 由於語法格式有誤,伺服器無法理解此請求。不作修改,客戶程式就無法重複此請求。http 錯誤 401 401.1 未授權 登入失敗 此錯誤表明傳輸給伺服器的證書與登入伺服器所需的證書不匹配。401.2 未授權 伺服器的配置導致登入失敗 此錯誤...