前言
在Oc中,方法分為類方法和實例方法。
前置加號(+)的方法為類方法,這類方法是可以直接用類名來調用的,它的作用主要是創建一個實例。有人把它稱為創建實例的工廠方法。
前置減號(-)的方法為實例方法,必須使用類的實例才可以調用的。
但看別人代碼過程中,還會發現一種,不帶加減號的方法。
1
2
3
4
5
6
7
8
9
10
11
12
|
@implementation MyViewController void foo(){ printf ( "msg from foo..." ); } - ( void )loadView { [super loadView]; foo(); } @end |
這種是混搭的 C 代碼。
當然當 C 方法寫在 @implementation 內也是可以的,編譯器會正確地處理。因為 C 方法嚴格來說不隸屬于類,好的做法是始終寫在類實現的外部。
1
2
3
4
5
6
7
8
9
10
11
12
|
void foo(){ printf ( "msg from foo..." ); } @implementation MyViewController - ( void )loadView { [super loadView]; foo(); } @end |
C 中獲取 Objective-C 的數據
但如果你以為將 C 代碼寫在 @implementation 內部就可以獲取到類里面的數據,那是不現實的。
MyViewController.h
1
2
3
|
@interface MyViewController () @property NSString *someStr; @end |
MyViewController.m
1
2
3
4
5
6
7
8
9
10
11
|
@implementation MyViewController // void foo() { printf(self.someStr); } //
延伸 · 閱讀
精彩推薦
|