日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

合成存储方法,局部/全局变量

發(fā)布時(shí)間:2025/5/22 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 合成存储方法,局部/全局变量 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?

--------合成存取方法--------

?

  • Objective-C從 OC 2.0版本開(kāi)始,自動(dòng)合成了setter 方法和 getter 方法。而且,如果開(kāi)發(fā)者需要自己控制某個(gè)setter 方法和 getter 方法的實(shí)現(xiàn)時(shí),可以自己提供 setter 方法和 getter 方法,自己提供的setter 方法和 getter 方法會(huì)覆蓋系統(tǒng)自動(dòng)合成的相應(yīng)方法。
  • 需要編譯器自動(dòng)合成 setter 方法和 getter 方法需要在需要生成方法的屬性面前加上 @property (必須) ?和 @synthesize(可以省略) 指令。(例: @property int numerator; ? ?@synthesize numerator = _numerator; ?// =_numerator ?可以省略)
  • 其實(shí)并不需要使用?@synthesize ?指令,使用 @property 指令就足夠了。編譯器會(huì)自動(dòng)為你生成 setter 和 getter 方法。但是,注意,如果你不使用 ?@synthesize 那么編譯器生成的實(shí)例變量會(huì)以下劃線(_)字符作為其名稱的第一個(gè)字符。
  • 使用合成存取方法,屬性名稱的前面不要以 new 、alloc 、copy 或者 init 這些詞開(kāi)頭。這與編譯器的一些假定有關(guān)。

?

/* ?@property 可以使用的一些指示符

?

?1.readonly:系統(tǒng)只合成getter方法,不再合成setter方法。

?

?2.readwrite:系統(tǒng)合成getter和setter方法,默認(rèn)是這樣。

?

?3.strong:指示符指定該屬性對(duì)被賦值對(duì)象持有強(qiáng)引用(只要該強(qiáng)引用指向被賦值的對(duì)象,那么該對(duì)象就不會(huì)被自動(dòng)回收)。多用在?其他對(duì)象(除代理\UI控件\字符串以外的對(duì)象)

?

?4.week:指示符指定該屬性對(duì)被賦值對(duì)象持有弱引用(即使該弱引用指向被賦值的對(duì)象,該對(duì)象也可能被回收)。多用在?代理\UI控件

?

?5.unsafe_unretained:類似于week,不同是指針?biāo)玫膶?duì)象回收之后,該指針不會(huì)被賦值為nil,該指示符極少用。

?6.copy :?多用在字符串類型

7.assign : 多用在非對(duì)象類型(基本數(shù)據(jù)類型int\float\BOOL\枚舉\結(jié)構(gòu)體)

?

?*/

?

?

?

?

?

--------局部變量和全局變量--------

?

  • 局部變量:在還是內(nèi)部定義的變量
    • 作用域:從定義變量開(kāi)始,到代碼塊結(jié)束
    • 生命周期:定義開(kāi)始到代碼塊結(jié)束,就會(huì)被回收
    • 函數(shù)的形參也是局部變量
    • 無(wú)固定初值
    • 局部變量沒(méi)有記憶力。方法內(nèi)定義的局部變量只會(huì)在方法內(nèi)有效,當(dāng)方法返回時(shí),這些變量的值都消失了。每次調(diào)用方法時(shí),該方法內(nèi)的局部變量(如果有的話)都是用變量聲明重新初始化一次。(等于重新分配了一塊存儲(chǔ)數(shù)據(jù)的內(nèi)存空間,以前局部變量所擁有的空間已經(jīng)被回收、銷(xiāo)毀,不會(huì)再次擁有)
  • 全局變量:函數(shù)外面定義的變量
    • 作用域:定義開(kāi)始到文件結(jié)尾(能被后面所有函數(shù)共享)
    • 生命周期:程序一開(kāi)始就分配內(nèi)存,到程序退出才銷(xiāo)毀
    • 默認(rèn)的初值為0
    • 全局變量有自己的記憶力
  • ? static ?關(guān)鍵字:
    • 在變量聲明前加上 static 關(guān)鍵字,可以使局部變量保留多次調(diào)用一個(gè)方法所得的值。(即 存儲(chǔ)數(shù)據(jù)的內(nèi)存空間不會(huì)被回收與銷(xiāo)毀,會(huì)記錄下局部變量所擁有的數(shù)據(jù),在下一次需要這個(gè)局部變量時(shí)將會(huì)返回唯一的存儲(chǔ)數(shù)據(jù)的內(nèi)存地址,和原有的數(shù)據(jù))

?

轉(zhuǎn)載于:https://www.cnblogs.com/fangjingjing/p/5866461.html

總結(jié)

以上是生活随笔為你收集整理的合成存储方法,局部/全局变量的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。