iphone – 如何在Objective-C中创建全局函数

我正在开发一个iphone应用程序,我需要有一些功能,在我的类中使用全局。

但是我该怎么做呢?

我只是试图创建functions.h喜欢这个

#include <Foundation/Foundation.h>

- (void)printTest;

和在函数

#import "functions.h"

- (void)prinTest {
    NSLog(@"test");
}

但它不工作。说我:“方法定义不在@implementation上下文”。

这里有两个选择。首先是在静态类中创建一个类方法:

标题:

#import <Foundation/Foundation.h>

@interface GlobalStuff : NSObject {}

+ (void)printTest;

@end

实施:

#import "functions.h"

@implementation GlobalStuff

+ (void) printTest {
  NSLog(@"test");
}

使用呼叫:

#import "functions.h"

...
[GlobalStuff printTest];

另一个选项是声明一个全局函数而不是类:

标题:

void GSPrintTest();

实施:

#import <Foundation/Foundation.h>
#import "functions.h"
void GSPrintTest() {
  NSLog(@"test");
}

使用呼叫:

#import "functions.h"
...
GSPrintTest();

第三个(坏的,但可能的)选项将添加一个类别到您的方法的NSObject:

标题:

#import <Foundation/Foundation.h>

@interface NSObject(GlobalStuff)
- (void) printTest;
@end

实施:

#import "functions.h"

@implementation NSObject(GlobalStuff)
- (void) printTest {
  NSLog(@"test");
}
@end

使用呼叫:

#import "functions.h"
...
[self printTest];
http://stackoverflow.com/questions/7294176/how-to-create-global-functions-in-objective-c

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:iphone – 如何在Objective-C中创建全局函数