ios學習筆記之bug彙總

2021-09-01 10:37:11 字數 953 閱讀 8111

[size=large][b]一,unknown type name ....[/b][/size]

[b][color=red]如果是報這個錯誤,多半是你的物件型別沒有被識別,檢查是不是沒有引用對應的庫或者標頭檔案在你的檔案頭部分,還有可能是迴圈引用導致的,迴圈引用的解決方法就是

class a 中用import class b

class b的.h標頭檔案裡用@class a;

.m檔案裡再用import[/color][/b]

[size=large][b]二,exc_bad_access[/b][/size]

[b] [color=red][nsstring alloc]nitwithstring:@」this is a test string」]; 建立了乙個 nsstring object,隨後的 s = [s substringfromindex:[s rangeofstring:@"a"].location]; 執行後,導致建立的物件引用消失,直接造成記憶體洩露。

2,錯誤釋放。[s release]; 這個問題,原因之一是乙個邏輯錯誤,以為 s 還是我們最初建立的那個 nsstring 物件。第二是因為從 substringfromindex:(nsuinteger i) 這個方法返回的 nsstring 物件,並不需要我們來釋放,它其實是乙個被 substringfromindex 方法標記為 autorelease 的物件。如果我們強行的釋放了它,那麼會造成 exc_bad_access 問題。

3, exc_bad_access。由於 s 指向的 nsstring 物件被標記為 autorelease, 則在 nsautoreleasepool 中已有記錄。但是由於我們在前面錯誤的釋放了該物件,則當 [pool drain] 的時候,nsautoreleasepool 又一次的對它記錄的 s 物件呼叫了 release 方法,但這個時候 s 已經被釋放不復存在,則直接導致了 exc_bad_access問題。[/color][/b]

IOS學習筆記之NSZone

在碰到allocwithzone,copywithzone總會有個疑問,這個nszone到底是個什麼東西?簡單來說,可以想象成乙個記憶體池,alloc或是dealloc這些操作,都是在這個記憶體池中操作的。cocoa總是會配置乙個預設的nszone,任何預設的記憶體操作都是在這個 zone 上操作的...

IOS學習筆記之UISearchBar

1 概念 搜尋條 uisearchbar 由乙個文字框和幾個按鈕組成,當使用者在文字框內輸入部分內容之後,程式即可按指定的規則執行搜尋。uisearchbar控制項的不同部分會激發不同的事件,而這些事件也由該控制項對應的委託物件處理,uisearchbar的委託物件必須實現uisearchbarde...

IOS學習筆記之通知

1 通知的概念 ios系統提供了nsnotificationcenter 通知中心 設計,這種設計允許開發者以松耦合的方式實現ios 應用內各個物件之間的通訊。nsnotificationcneter實現了觀察者模式,允許應用的不同物件之間以松耦合的方式進行通訊。nsnotificationcent...