iOS開發學習第二十一課 屬性 點語法

2021-07-03 09:08:15 字數 3582 閱讀 2287

1.

屬性//屬性:

為你自動生成

setter

和getter

//能在⼀定程度上簡化程式**,並且增強例項變數的訪問安全性

//屬性宣告的寫法

//@property

資料型別

例項變數名;//

屬性實現的寫法

//@synthesize

例項變數名;2.

屬性的修飾符

//修飾符

,實質是對

setter

和getter

方法的限定

//(1)

執行緒安全組

//nonatomic:

非原子性

(不對多執行緒進行管理

,效率高

)//atomic:

原子性(

在多執行緒下使用

,保證執行緒安全

,但效率會很低)//

注:a.

預設值:atomic,

一般使用

nonatomic

//  b.atomic

修飾的屬性

,要麼同時重寫

setter

和getter,

要麼都不重寫

;不允許只重寫其中乙個方法

//(2)

記憶體管理組

//assign(

預設值)

//retain

//copy

//weak

//strong

//week

和strong

在arc

下才能夠使用

//基本資料型別用

assign

//物件用

retain, weak, strong

//既是物件

,並且物件遵循協議

,才能使用

copy//注

:delegate

寫成屬性,在

arc下用

weak,

在mrc

下用assign

//(3)

讀寫組//readwrite(

預設值)

可讀寫,

生成setter

和getter

//readonly:唯讀,

只生成getter

//(4)

方法重新命名組

//setter=

方法名//getter=

方法名//注:

重新修改

setter

和getter

的名字,

不影響點語法的使用

3.點語法

//點語法是

setter

和getter

的快捷呼叫方法

//屬性是⼀對

getter

、setter

方法,點語法是屬性的另一種呼叫格式

//如果點語法出現在賦值等號的左側,呼叫

setter;

其他位置,呼叫

getter

***************************

person.h

#import

@inte***ce

person :

nsobject

//屬性的作用

://1.

可以自動生成

setter

和getter方法(

包括宣告和實現

)//2.

如果沒有定義例項變數

,則自動生成例項變數

命名原則

(_屬性名

)@property

(nonatomic

,retain

)nsstring

*name;

@property

(nonatomic

,retain

)nsstring

****;

@property

(nonatomic

,assign

)nsinteger

age;

@property

(nonatomic

,assign

)nsinteger

number;

- (id

)initwithname:(

nsstring

*)name

***:(

nsstring

*)***

age:(

nsinteger

)age

number:(nsinteger

)number;

@end

***************************

person.m

#import

"person.h"

//由關鍵字

synthesize

//1.

來完成屬性宣告對應的

setter getter

實現//2.

同時繫結例項變數

//如果我們不去定義

,那麼系統會生成

@synthesize,

但是例項變數的可見度是私有的

@implementation

person

- (id

)initwithname:(

nsstring

*)name

***:(

nsstring

*)***

age:(

nsinteger

)age

number:(

nsinteger

)number

return

self;}

@end

***************************

main.m

#import

#import

"person.h"

#import

"student.h"

#import

"fraction.h"

intmain(

intargc,

const

char

* argv) {

@autoreleasepool

{ person

*per = [[

person

alloc

]initwithname

:@"xiaolong"

***:

@"m"

age:18

number

:01];

//呼叫

setter

方法賦值

[per

setname

:@"junfeng"

]; per.

name

=@"***"

;nslog

(@"name:%@  ***:%@  age:%ld  number:%ld"

,[per

name

],[per

***],[per

age],[per

number]);

Android第二十一課筆記

內容提供者 內容提供者簡介 內容提供者 contentprovider 是android系統四大元件之一,用於儲存和檢索資料,是android系統中不同應用程式之間共享資料的介面。contentprovider是不同應用程式之間進行資料交換的標準api,以uri形式對外提供資料,允許其他應用操作本應...

第二十一題

題目 猴子吃桃問題 猴子第一天摘下若干個桃子,當即吃了一半,還不癮,又多吃了乙個第二天早上又將剩下的桃子吃掉一半,又多吃了乙個。以後每天早上都吃了前一天剩下的一半零乙個。到第10天早上想再吃時,見只剩下乙個桃子了。求第一天共摘了多少。my code 正向思考 index true remain0 0...

第二十一周學習筆記

12.1由x到形狀 除了雙眼視差外,陰影 紋理和聚焦都參與了我們對形狀的感知,從這些線索來推斷形狀的研究有時稱為 由x到形狀 12.1.1 由陰影到形狀與光度測量立體視覺 從影象亮度變化推斷出表面形狀的問題稱為 由陰影到形狀 12.1.2 由紋理到形狀 規則紋理的透視收縮變化可以對區域性表面方向提供...