類擴充套件(class extension)

2021-06-28 17:22:48 字數 3018 閱讀 6389

oc裡面類擴充套件

類似protected和private

的作用。

1.類擴充套件是一種特殊的類別,在定義的時候不需要加名字。下面**定義了類things的擴充套件。

@inte***ce things ()

@end

2.類擴充套件作用

1)可以把暴露給外面的可讀屬性改為讀寫方便類內部修改。

【公有可讀、私有可寫的屬性(publicly-readable, privately-writeable properties)】

在.h檔案裡面宣告thing2為唯讀屬性,這樣外面就不可以改變thing2的值。

1

2

3

4

5

6

7

@inte***cethings :nsobject

@property(readonly, assign)nsintegerthing2;

- (void)resetallvalues;

@end

在.m裡面resetallvalues方法實現中可以改變thing2為300.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

@inte***cethings ()

@property(readwrite, assign)nsintegerthing2;

@end

@implementationthings

@synthesizething2;

- (void)resetallvalues

2)可以新增任意私有例項變數。比如上面的例子things擴充套件新增了nsinteger thing4;這個例項變數只能在things內部訪問,外部無法訪問到,因此是私有的。

3)可以任意新增私有屬性。你可以在things擴充套件中新增@property (assign) nsinteger thing3;

4)你可以新增私有方法。如下**在things擴充套件中宣告了方法disinfo方法並在things實現了它,在resetallvalues呼叫了disinfo

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

@inte***cethings ()

@property(readwrite, assign)nsintegerthing2;

@property(assign)nsintegerthing3;

- (void) disinfo;

@end

@implementationthings

@synthesizething2;

@synthesizething3;

- (void) disinfo

- (void)resetallvalues

oc 類擴充套件

封裝的特性就是暴露公共介面給外邊呼叫,c 通過public定義公共方法提供給外面呼叫,protected和private定義的方法只能在類裡面使用,外面不能呼叫,若外面呼叫,編譯器直接報錯,對於變數也同理。oc裡面類擴充套件類似protected和private的作用。1.類擴充套件是一種特殊的類別...

類 類別 擴充套件

class sayhelloworld.h import inte ce sayhelloworld nsobject end sayhelloworld.m import sayhelloworld.h 這裡一般用extension為原類新增變數和協議等等。implementationsayhel...

類擴充套件 extension

第一步.新建檔案 第二步.選擇ios平台source中的object c fie 第三步.選擇file type為extension,則可建立相應類的擴充套件檔案 第四步.擴充套件檔案為 單一 的.h檔案 第五步.命名為 類名 類別名.h import 類名.h inte ce 類名 在此新增私有成...