当前位置:首页 > 通信资讯 > 正文

前言

在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); } //
如果您对该产品感兴趣,请填写办理(客服微信:xiaoxiongyidong)

为您推荐:

发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。