iphone - 从 Objective-C 中的另一个类调用方法

标签 iphone objective-c ios cocoa-touch

我知道通常,当你想调用另一个对象的方法时,你会这样做:

NewObject *object = [NewObject alloc]init];

[对象调用方法];

但是我创建了一个本身不是对象的类,这意味着它没有属性或内存管理。它有几个方法可以计算一些东西。

从任何其他类中,我所要做的就是导入该类的 header 并执行以下操作:

#import "MyClass.h"

[MyClass callMethod];

为什么在这种情况下我不必分配 init ?它工作得很好。

最佳答案

听起来您正在尝试调用类方法。这些方法已定义为:

  • +(void) myStaticMethod;

而不是

  • -(void) myMethod;

加号表示该方法不使用任何字段,因此不需要实例化该对象。

在您的示例中,“object”是类“NewObject”的实例,已分配内存并初始化。作为您的示例,“MyClass”只是一个类,因为它具有如上所述声明的静态成员,所以不需要实例化。

类方法提供了一种将一堆相关函数组合到一个地方的好方法,而不是像通常在直接 C 中那样将它们分散在常规命名空间中。您还可以同时拥有类方法和实例方法在同一个类中,需要时使用类的,需要时实例化类以使用实例的。

编辑:更改了术语以引用类方法而不是静态方法。

关于iphone - 从 Objective-C 中的另一个类调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11889458/

相关文章:

ios - xCode 7 - dyld`dyld_fatal_error :

iphone - 不使用 iPhone 时关闭加速计

iphone - 从特定于区域设置的字符串中解析数字?

ios - 将带有JSON的NSString转换为NSDictionary

iphone - 使用 SDK 登录 facebook

ios - 如何在收到远程通知时唤醒未运行的应用程序

ios - CAGradientLayer 无法正常工作

ios - IOS中SQLite的连接状态

iphone - UIImageView 对比 UIView 的 drawRect 显示图片

ios - 如何使用 UISegmentedControl 更改 Swift 中的标签?