Fre*_*ins 31 iphone objective-c
我正在开发一个iphone应用程序,我需要在我的课程中使用全局功能.
但是我怎么能这样做呢?
我只是试图创造functions.h喜欢这个
#include <Foundation/Foundation.h>
- (void)printTest;
并在 functions.m
#import "functions.h"
- (void)prinTest {
    NSLog(@"test");
}
但它不起作用.我说:"方法定义不在@implementation上下文中".
Ed *_*rty 61
这里有两个选择.首先是在静态类中创建一个类方法:
标题:
#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];
Eel*_*lke 12
如果需要全局函数,只需编写C函数即可.objective-C语法仅用于对象的上下文中.
void printTest() {
    NSLog(@"This is a test");
}
编辑:
您必须在以下位置添加声明functions.h:
void printTest();
| 归档时间: | 
 | 
| 查看次数: | 25806 次 | 
| 最近记录: |