我有像下面的調用堆棧的崩潰報告。由於我無法重新發現錯誤,我必須猜測發生了什麼。什麼是__NSBlockVariable__以及爲什麼它會發生無法識別的選擇器發送給實例錯誤?
NSInvalidArgumentException
---------------------
-[__NSBlockVariable__ profile_data]: unrecognized selector sent to instance 0xab2f620
---------------------
0 CoreFoundation 0x378688a7 __exceptionPreprocess + 186
1 libobjc.A.dylib 0x35d6e259 objc_exception_throw + 32
2 CoreFoundation 0x3786ba9b -[NSObject doesNotRecognizeSelector:] + 174
3 CoreFoundation 0x3786a915 ___forwarding___ + 300
4 CoreFoundation 0x377c5650 _CF_forwarding_prep_0 + 48
5 TouchPalDialer 0x0005096f -[InfoEditViewControllerNew textFieldDidEndEditing:] + 134
扔崩潰的代碼應該是這樣的
profile_data_manager.profile_data.name = [textField.text stringByTrimmingCharactersInSet:whitespace];
的profile_data_manager是可以肯定的是類類型ProfileDataManager的,而且可以肯定的是擁有財產@財產(非原子,保留) ProfileModel * profile_data;
我不知道爲什麼profile_data_manager變成了NSBlockVariable,以及它爲什麼不識別profile_data。
我看到這篇文章Calling delegate method, unrecognized selector because sending to wrong object,說改變nonatomic原子解決了他的問題。
我不確定我的崩潰是否有相同的原因。如果任何人都可以向我展示一些有關NSBlockVariable的資源解釋,那將是非常好的,所以我可以更好地理解原因。
謝謝!