寫了那么多的代碼了,平時(shí)也沒有怎么注意會報(bào)這個(gè)錯(cuò)誤,因?yàn)槠綍r(shí)都很少同時(shí)重寫setter和getter方法,一般的話,我們大概都是使用懶加載方法,然后重寫getter方法,做一個(gè)非空判斷。然后有時(shí)候根據(jù)需求,要同時(shí)重寫屬性的setter和getter方法。系統(tǒng)就會報(bào)錯(cuò)誤::Use of undeclared identifier '_name';did you mean 'name'

MARK:如果不想了解太多,直接的解決方法:
在@implementation 實(shí)現(xiàn)中添加一行代碼就OK了
@synthesize wtName = _wtName;

詳解一下:
OC最初設(shè)定@property和@synthesize的作用:
@property的作用是定義屬性,聲明getter,setter方法。(注意:屬性不是變量)
@synthesize的作用是實(shí)現(xiàn)屬性的,如getter,setter方法.
在聲明屬性的情況下如果重寫setter,getter,方法,就需要把未識別的變量在@synthesize中定義,把屬性的存取方法作用于變量。如:
.h文件中
后來因?yàn)槭褂聾property灰常頻繁,就簡略了@synthesize的表達(dá)。
從Xcode4.4以后@property已經(jīng)獨(dú)攬了@synthesize的功能主要有三個(gè)作用:
(1)生成了私有的帶下劃線的的成員變量因此子類不可以直接訪問,但是可以通過get/set方法訪問。那么如果想讓定義的成員變量讓子類直接訪問那么只能在.h文件中定義成員 變量了,因?yàn)樗J(rèn)是@protected
(2)生成了get/set方法的實(shí)現(xiàn)
當(dāng):
用@property聲明的成員屬性,相當(dāng)于自動生成了setter getter方法,如果重寫了set和get方法,與@property聲明的成員屬性就不是一個(gè)成員屬性了,是另外一個(gè)實(shí)例變量,而這個(gè)實(shí)例變量需要手動聲明。所以會報(bào)錯(cuò)誤。
總結(jié):一定要分清屬性和變量的區(qū)別,不能混淆。@synthesize 聲明的屬性=變量。意思是,將屬性的setter,getter方法,作用于這個(gè)變量。