仅在设备上 - 无法识别的选择器发送到类

时间:2014-10-02 12:44:27

标签: ios objective-c

我有一个问题,我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) 

有人提到了设备和模拟器之间在案例方面的区别,但是文件名是绝对小写的:

enter image description here

导致我的应用崩溃的原因是什么?

1 个答案:

答案 0 :(得分:0)

如果您的StarIOFunctions类在您与iOS应用程序链接的静态库中实现,则需要将-ObjC链接器标志添加到项目设置中。看起来这个方法在编译后不会出现在app二进制文件中。 This article描述了如何添加链接器标志。