我最近正在为自己写一个简单的静态库。它包括一些ui控件,宏和可可触摸类的添加,但我的代码有问题,我不知道如何解决它。
我做了以下步骤:
将项目目录移至“/".
创建一个名为TestOrange的基于窗口的应用程序。
当我运行TestOrange时,它可以打印MyMath的结果,但会立即崩溃。
MyMath可以工作,但NSArrayAdditions无效。我认为NSArrayAdditions有问题。
以前有人遇到过这个问题吗?请帮我。提前感谢。
此处列出了所有代码。 MYMATH
@interface MyMath : NSObject {
}
- (NSNumber*)AddA:(int)a B:(int)b;
@end
@implementation MyMath
- (NSNumber*)AddA:(int)a B:(int)b {
return [NSNumber numberWithInt:a+b];
}
@end
NSArrayAdditions
@interface NSArray (Additions)
- (NSNumber*)Double:(int)a;
@end
@implementation NSArray (Additions)
- (NSNumber*)Double:(int)a {
return [NSNumber numberWithInt:2*a];
}
@end
使用libOrange
#import "TestOrangeAppDelegate.h"
#import "MyMath.h"
#import "NSArrayAdditions.h"
@implementation TestOrangeAppDelegate
@synthesize window=_window;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
MyMath *mm = [[MyMath alloc] init];
NSLog(@"%@", [mm AddA:12 B:23]);
[mm release];
NSArray *ary = [[NSArray alloc] init];
NSLog(@"%@", [ary Double:13]);
[ary release];
[self.window makeKeyAndVisible];
return YES;
}
@end
答案 0 :(得分:1)
尝试在构建设置中将-ObjC
和-load_all
添加到“其他链接器标记”。
基本上,除非您指定此标志,否则框架类的类别不一定会被链接。
-load_all
将强制加载所有已编译的类,从而解决问题。