前言
在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); } //
延伸 · 阅读
精彩推荐
|