-2

所以我有一个笼统的问题。我有一堆函数,其中一些是 void,一些返回 NSString*,一些返回 NSDictionary*,等等。我在一堆不同的类中使用这些函数。我只想创建一个库 .m 文件,我可以将其包含在使用它们的类中,因此我不必到处复制和粘贴这些函数。我很确定这应该不难做到,但我似乎无法让它适用于除了 void 函数之外的任何东西。

例子:

//Library.h
(NSString*)doStuff{
    NSString* test = "hello world";
    return test;
}

(void)print{
    NSLog(@"Hi");
}

我希望基本上有 1 个文件,我可以在其上使用 import 语句,但不确定这在 obj c 中是否可行。

罗宾

4

2 回答 2

1

您可以使用普通的旧 C 风格:

// ======== yourlib.h =========
#import <Foundation/Foundation.h>
NSString *doStuff();
void print();


//======== yourlib.m =========
#import "yourlib.h"
NSString *doStuff(){
    NSString *test = @"hello world";
    return test;
}

void print(){
    NSLog(@"Hi");
}

或者,您可以使用类别功能附加到现有框架:

// ======= youlib.h ========
#import <Foundation/Foundation.h>
@interface NSString (YourCategory)
+ (NSString *)someStringFromString:(NSString*)string;
- (NSDictionary *)someDictionaryFromString;
@end
// ======= yourlib.m =======
#import "yourlib.h"
@implementation NSString(YourCategory)
+ (NSString *)someStringFromString:(NSString*)string {
   ...
   return aString;
}
- (NSDictionary *)someDictionaryFromString {
   ...
   return aDict;
}
@end
于 2012-06-25T07:03:50.080 回答
0

使用类方法。在课堂上写下你所有的常用函数Library

  //Library.m

+(NSString*)doStuff{
    NSString* test = "hello world";
    return test;
}

+(void)print{
    NSLog(@"Hi");
}


#import "Library.h"
@implementation ClassA

-(void)MethodA
{
 [Library doStuff];
 [Library print];
}
于 2012-06-25T07:02:08.547 回答