gpt4 book ai didi

Objective-c - 仅在实现中的方法和扩展类的方法,有什么区别

转载 作者:行者123 更新时间:2023-12-04 04:46:37 25 4
gpt4 key购买 nike

我是一个objective-c初学者,我看到了如下代码:

演示 Controller .m:

@interface DemoController()
-(void)method1;
@end

@implementation DemoController

-(void)method1
{
NSLog(@"This is method1 in class extension");
}

//this method is not declared in DemoController.h, only in DemoController.m.
-(void)method2
{
NSLog(@"This is method2 in implementation only");
}

@end

我想知道method1和method2有什么区别。
谁能告诉我?

真挚地,

最佳答案

在较旧的 Objective-C 版本中,您需要先声明一个方法,然后才能使用它,这就是代码的前三行对 method1 所做的事情。 .如果您的 .h文件没有声明 method1也不是 method2 ,两者都不能从您的.m 外部轻松调用文件。

在 Objective-C 中,所有方法都是公开的!没有办法隐藏方法。您始终可以使用“低级”方式调用任何方法,例如 performSelector:withObject: .但是如果你声明了一个方法,编译器会为你提供你习惯的简单访问:[object method] .

所以method1没有区别和 method2在你的例子中。不再需要在类扩展中声明方法以便可以在同一个文件中使用它们。

关于Objective-c - 仅在实现中的方法和扩展类的方法,有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18074180/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com