First note that Objective-C language is a superset of C language (meaning there is absolutely nothing wrong with mixing them).
There are two approaches.
#1 Real global function:
Declare a global C-style function, which can have ObjC logic (in definetion instead of just C-style logic).
Header:
void GSPrintTest();
Implementation:
#import "functions.h"
#import <Foundation/Foundation.h>
void GSPrintTest() {
NSLog(@"test");
}
Call using:
#import "functions.h"
...
GSPrintTest();
A third (bad, but possible) option would be adding a category to NSObject for your methods:
Header:
#import <Foundation/Foundation.h>
@interface NSObject(GlobalStuff)
- (void) printTest;
@end
Implementation:
#import "functions.h"
@implementation NSObject(GlobalStuff)
- (void) printTest {
NSLog(@"test");
}
@end
Call using:
#import "functions.h"
...
[self printTest];
#2 class method:
Create a class method with +
sign, in helper class (instead of instance method with -
sign).
Header:
#import <Foundation/Foundation.h>
@interface GlobalStuff : NSObject {}
+ (void)printTest;
@end
Implementation:
#import "functions.h"
@implementation GlobalStuff
+ (void) printTest {
NSLog(@"test");
}
@end
Call using:
#import "functions.h"
...
[GlobalStuff printTest];
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…