91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

iOS培訓教程——iOS開發中常見的語句@synthesize obj=_obj詳解

發布時間:2020-07-21 01:21:04 來源:網絡 閱讀:425 作者:藍鷗蔣杏飛 欄目:移動開發

學習iOS開發時,會遇到這樣那樣的問題,那么大家有沒有遇到過@synthesizewindow=_window;,在這里面window與_window分別代表什么知道嗎?它們的差別在哪,又如何用使用它們,這是學習iOS開發中最常見的問題了。

這里也會涉及到Objective-C中對類、類的屬性、類的存取器、類的局部變量的理解:藍鷗iOS培訓推薦:

在32位系統中,如果類的@interface部分沒有進行ivar聲明,但有@property聲明,在類的@implementation部分有響應的@synthesize,則會得到類似下面的編譯錯誤:

Synthesizedproperty'xX'musteitherbenamedthesameasacompatibleivarormustexplicitly

nameanivar在64-bit時,運行時系統會自動給類添加ivar,添加的ivar以一個下劃線"_"做前綴。

上面聲明部分@synthesizewindow=_window;意思是說,window屬性為_window實例變量合成訪問器方法。

也就是說,window屬性生成存取方法是setWindow,這個setWindow方法就是_window變量的存取方法,它操作的就是_window這個變量。通過這個看似是賦值的這樣一個操作,我們可以在@synthesize中定義與變量名不相同的getter和setter的命名,籍此來保護變量不會被不恰當的訪問。

下面給大家舉一個最常見的例子,一看就明白了:

寫法一:

iOS培訓教程——iOS開發中常見的語句@synthesize obj=_obj詳解

寫法二:

iOS培訓教程——iOS開發中常見的語句@synthesize obj=_obj詳解

這個類中聲明了一個變量_myObject,又聲明了一個屬性叫myObject,然后用@synthesize生成了屬性myObject的存取方法,這個存取方法的名字應該是:setmyObject和getmyObject。@synthesizemyObject=_myObject的含義就是屬性myObject的存取方法是做用于_myObject這個變量的。這種用法在Apple的SampleCode中很常見。

那么,一樣是存取操作語句整理

iOS培訓教程——iOS開發中常見的語句@synthesize obj=_obj詳解

iOS培訓教程——iOS開發中常見的語句@synthesize obj=_obj詳解

兩種賦值方式的區別何在呢?

self.nameVarPtr=xxx這種賦值方式等價于調用[selfsetnameVarPtr:xxx],而setnameVarPtr:xxx的方法的

實現又是依賴于@propert

y的屬性的,比如retain,assign等屬性。

nameVarPtr=xxx的賦值方式,僅僅是對一個指針進行賦值。nameVarPtr僅僅是一個指針變量,記錄了xxx的

地址。在這個過程中不會調用setter方法,不會調用setter方法,就和@property沒有關系,從而,也和retain

,assign等屬性沒有關系。這種賦值方式就是一個簡單的指針賦值。

從上面的說法中得出,對成員變量進行賦值,為防內存泄露,就一定要注意以下兩點:

1、self調用setter方法的方式

iOS培訓教程——iOS開發中常見的語句@synthesize obj=_obj詳解

2、指針賦值方式,不會調用setter方法

iOS培訓教程——iOS開發中常見的語句@synthesize obj=_obj詳解

總結:在給某個變量賦值的時候,要盡量寫self.myObj=xxx;因為這種方法最可靠,最實用的方法,在iOS開發中用起來就會很方便了,我是藍鷗蔣杏飛,有相同愛好的同仁們可以相互討論下下。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

龙泉市| 北宁市| 南投市| 平果县| 浦江县| 右玉县| 贡觉县| 阳信县| 句容市| 洛扎县| 南城县| 彭山县| 威海市| 马关县| 冀州市| 南召县| 毕节市| 天气| 盐山县| 汝阳县| 大邑县| 平山县| 北川| 榆树市| 如皋市| 富裕县| 宽甸| 久治县| 廉江市| 怀化市| 乐平市| 顺昌县| 锡林郭勒盟| 泸水县| 自治县| 项城市| 抚松县| 长顺县| 来安县| 城口县| 山东|