1. 程式人生 > >unrecognized selector sent to instance出現的原因和解決方案

unrecognized selector sent to instance出現的原因和解決方案

造成unrecognized selector sent to instance iphone,大部分情況下是因為物件被提前release了,在你心裡不希望他release的情況下,指標還在,物件已經不在了。

很多時候,是因為init初始化函式中,對屬性賦值沒有使用self.foo賦值,而是直接對foo賦值,導致屬性物件沒有retain(心裡以為retain了),而提前釋放。

造成unrecognized selector sent to instance XXX,大部分情況下是因為物件被提前release了,在你心裡不希望他release的情況下,指標還在,物件已經不在了。

問題解決連結:http://www.devdiv.com/thread-30546-1-1.html

@interface MyClass : NSObject {  
    MyObject *myObject;  
}  
@property (nonatomic, retain) MyObject *myObject;  
@end  

對於self.myObject = xxx呼叫。你將訪問由@property這裡面自動給你提供的一些函式。這些函式會幫你增加引用計數。

對於myObject = xxx這種呼叫。相當於你直接訪問花括號裡面的那個,即直接給myObject賦值但是沒有增加引用計數。可能造成的情況就是在你要使用myObject之前,它已經釋放了。



相關推薦

unrecognized selector sent to instance出現原因解決方案

造成unrecognized selector sent to instance iphone,大部分情況下是因為物件被提前release了,在你心裡不希望他release的情況下,指標還在,物件已經不在了。很多時候,是因為init初始化函式中,對屬性賦值沒有使用self

出現unrecognized selector sent to instance”問題原因之一及解決方法。

對於iPhone開發初學者來說,很想實現自己在iPhone上的第一個小程式,準備工作就緒侯就信心滿滿的開始了!一般來說大家可能都是從Hello World做起吧。 反正我是的,:),如果按照文件上的說明去做,一般也不會出現什麼問題。也建議初學者這樣開始,畢竟會增強我們自己的

unrecognized selector sent to instance問題原因之一及解決方法。

1. 自己遇到的問題: 2015-05-28 15:46:53.046 test[5298:146142] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason:

xcode 執行出現類似-[__NSCFString objectForKey:]: unrecognized selector sent to instance的除錯方法

1.在程式中任意的.m檔案(最好在特定的檔案中,如為解決此類問題單獨建一個統一的.m檔案)中新增類似以下程式碼 @implementation NSString (NSStringDebug) -(void) objectForKey:(NSString*) str 

[UIApplication openURL:options:completionHandler:]: unrecognized selector sent to instance

有用 lec ica value selector sent har div option 最近看日誌發現有用戶點擊跳轉閃退的問題,查了一下原因是下面的方法是在ios 10系統以後才支持的,如果用戶是ios 10以下系統會崩潰 [[UIApplication shared

【IOS】無法識別類別拓展方法unrecognized selector sent to instance解決方法

有時在開發中會發現無法識別拓展類別的新增方法,總是識別原檔案的方法,而原檔案中是沒有新添方法的,於是在動態呼叫拓展方法時丟出了unrecognized selector sent to instance的錯誤。 解決方法是在Xcode的Build Settings下Othe

-[AVComposition URL]: unrecognized selector sent to instance

[manager requestAVAssetForVideo:PHAsset options:videoRequestOptions resultHandler:^(AVAss

NSCFType unrecognized selector sent to instance等問題

看到這些問題,其實列印的很清楚,就是NSCFType找不到某個方法,但瞬間又疑惑了,NSCFType是什麼鬼,自己也沒呼叫這個類,後來網上查了一下,大部分的資料是說,也就是說,instance物件過早的釋放掉了,指標雖然還是指向那塊記憶體地址,但記憶體實際已經被釋放掉了,自然

問題人生[20160330] -[NSCFString containsString:]: unrecognized selector sent to instance 0x7f9902724da0

進行字串搜尋比對時用到的方法 containsString,在iOS7中執行時發生崩潰: -[NSCFString containsString:]: unrecognized selector sent to instance 0x7f9902724da0 查詢API

-[__NSCFConstantString size]: unrecognized selector sent to instance 0xce18c0

原[btn setImage:@"iconfont-liaotian" forState:UIControlStateNormal]; 改[btn setImage:[UIImage imageName

-[__NSArrayI addObject:]: unrecognized selector sent to instance 0x1744523c0

出現這種報錯,我之前也很疑惑,但看一下錯誤資訊後明白了,我的可變陣列被改成不可變陣列了,不能使用addobject來新增資料,所以我就找程式碼中哪裡別修改了,發現對陣列做去重處理的時候被改變的讓後改成這樣就好了,mutablecopy方法是將就不可變陣列轉換為可變陣列,然後就

[UIImageView setImageWithURL:]: unrecognized selector sent to instance解決辦法

Common Problems Using dynamic image size with UITableViewCell UITableView determins the size of the image by the first image set for a cell. If your rem

unrecognized selector sent to instance

問題原因是:我的storyboard中的介面class中沒有關聯自己的類:FendianTBV,關聯好後傳值就再無問題了 ios 開發中我從一個介面往另一個storyboard介面傳值時出現了這個問題

使用Masonry報unrecognized selector sent to instance的錯

問題的來源:       現在我公司有兩個專案,A專案(使用xcode的版本比較舊),B專案(使用最新的xcode版本);       B專案是使用cocoaPods管理第三方庫,並加了一些第三方庫。

跨域問題出現原因解決方案

出現原因 【出現原因】什麼是跨域以及產生原因 解決方案 【策略一】Jsonp 需要目標伺服器配合一個callback函式 JSONP(JSON with Padding)

iOS呼叫分類時異常unrecognized selector sent to class

執行程式時寫的分類拋異常,也沒看懂異常是什麼意思,後來在分類中再新增新方法時發現.m檔案取不到.h檔案中的方法名,原來是分類檔案建立的有問題,具體原因還不知道。對unrecognized selector sent t

執行緒安全問題出現 的根本原因解決方案

執行緒安全問題出現的根本原因:    1. 必須要存在兩個或者兩個以上的執行緒共享著一個資源。    2. 操作共享資源的程式碼必須有兩句或者兩句以上。     1. 同步程式碼塊   &nbs

線程安全問題出現 的根本原因解決方案

代碼塊 zed 固定 syn 方法 共享 方案 代碼 靜態 線程安全問題出現的根本原因: 1. 必須要存在兩個或者兩個以上的線程共享著一個資源。 2. 操作共享資源的代碼必須有兩句或者兩句以上。 1. 同步代碼塊 synchroniz

[偶爾遇到]找不到mysql.sock的出現原因解決方案mysql 預設mysql.sock位置預設問題探討 不指定

背景:(1)偶爾會出現mysql的server和mysql的client預設的socke檔案不在一個地方,我們用mysql時會出現一個找不到mysql.sock的情況。(2)因非正常關機出現:/tmp/mysql.sock 不見了,找不到了,如何連線上去的問題?(其他機器通過

java.sql.SQLException: Access denied for user ''@'localhost' (using password: NO) 出現原因解決辦法

    今天我在複習mysql資料庫中,寫JDBC測試程式碼的時候,在使用Junit測試執行程式的時候,遇到了這個錯誤:java.sql.SQLException: Access denied for