1

可能重复:
如何在 Objective-C 中创建全局函数

我很好奇在 Objective C 中创建任何类都可以使用的全局实用程序方法通常是如何完成的。

我能想到的简单且唯一的解决方案是简单地创建一个类,即称其为 GlobalMethods,然后创建一堆类方法,这样就可以在没有实例化此类的情况下使用它们。

这是一个明智而有效的方法吗?关于方法的类型,它们可能是任何东西,例如我使用的自定义数学公式等。

4

2 回答 2

1

我使用这种确切的方法来提供CocoaUtil提供各种应用程序服务的全局类。

但是,您可以简单地定义执行 Objective-C 事情的全局 C 函数;例如:

实用程序.h:

extern NSString *helloWorld(int i);

实用程序:

NSString *helloWorld(int i)
{
    return [NSString stringWithFormat:@"Hello World %d", i];
}

但是,我使用 Objective-C 类方法,因为它提供了更好的“命名空间”支持,比如 C++。

于 2012-11-15T07:59:58.203 回答
1

有几种常见的方法可以使某些代码在全球范围内可用。以下是一些来自 Apple 公共 API 的示例:

  • 在新类上创建类方法。这是你建议的。例子:NSPropertyListSerialization, NSJSONSerialization.

  • 在一些适当的现有类上创建类方法。示例:UIKit 使用类别将类方法添加到NSValue,例如valueWithCGRect:valueWithCGPoint:

  • 创建一个理解一组相关消息的单例。例子:[UIApplication sharedApplication], [NSFileManager defaultManager].

  • 创建普通的旧 C 函数。示例:UIImagePNGRepresentationUIRectFillNSLogNSStringFromCGPoint和 pantload 更多。

  • 如果代码特别对某个对象进行操作,请使用类别在该对象的类中添加一个方法。示例:UIKit添加sizeWithFont:drawAtPoint:withFont:和相关方法以NSString使用类别。

于 2012-11-15T08:06:59.927 回答