我有一个问题,我originally认为这与我的Xamarin绑定有关。但是,我现在已经制作了一个示例Objective-C应用程序,从等式中删除Xamarin,我也有同样的问题。我创建了一个包含以下标题的库:
#import <Foundation/Foundation.h>
@interface StarIOFunctions : NSObject {
}
+ (NSMutableData *) GetDataToSendToPrinter:(UIImage *)image maxWidth:(int)maxWidth drawerKick:(BOOL)drawerKick compressionEnable:(BOOL)compressionEnable;
@end
点击按钮即可通过我的应用程序调用它:
- (IBAction)DevButton_TouchUpInside:(id)sender {
UIImage *imageToPrint = [UIImage imageNamed:@"image1.png"];
NSMutableData *commandsToPrint = [StarIOFunctions GetDataToSendToPrinter:imageToPrint maxWidth:100 drawerKick:YES compressionEnable:YES];
}
在模拟器中一切正常但在我使用以下部署到设备时崩溃:
2014-10-02 13:34:04.821 StarIO SDK[449:95479] +[StarIOFunctions GetDataToSendToPrinter:maxWidth:drawerKick:compressionEnable:]: unrecognized selector sent to class 0x13dddc
2014-10-02 13:34:04.825 StarIO SDK[449:95479] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+[StarIOFunctions GetDataToSendToPrinter:maxWidth:drawerKick:compressionEnable:]: unrecognized selector sent to class 0x13dddc'
*** First throw call stack:
(0x24b2df87 0x324cac77 0x24b33299 0x24b31259 0x24a62d68 0xce213 0x27fdd497 0x27fdd439 0x27fc804d 0x27fdce69 0x27fdcb43 0x27fd6451 0x27faccc5 0x28220513 0x27fab707 0x24af4807 0x24af3c1b 0x24af2299 0x24a3fdb1 0x24a3fbc3 0x2bd74051 0x2800ba31 0x93a3f 0x93040)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)
有人提到了设备和模拟器之间在案例方面的区别,但是文件名是绝对小写的:
导致我的应用崩溃的原因是什么?
答案 0 :(得分:0)
如果您的StarIOFunctions类在您与iOS应用程序链接的静态库中实现,则需要将-ObjC
链接器标志添加到项目设置中。看起来这个方法在编译后不会出现在app二进制文件中。 This article描述了如何添加链接器标志。