我在iOS中构建静态库。在我的项目中导入该库之后,我在其他链接器标志中添加了-ObjC
。但是当我调用类方法(当前有3个可用)时,其中2个被调用并正确执行,但最后一个是出现此错误:"+[RankConferenceLib joinConferenceWithName:]: unrecognized selector sent to class 0x5044dc"
。
这是我的库头文件
@interface RankConferenceLib : NSObject
+(void)initEnvironment;
+(void)orientationChange;
+(void)joinConferenceWithName:(NSString *)name;
@end
在库的.m文件中
+ (void)joinConferenceWithName:(NSString *)name
{
//....codes
}
在我的项目中,我打电话给他们
- (IBAction)join:(UIButton *)sender {
[RankConferenceLib joinConferenceWithName:@"User"];
}
请告诉我我在这里失踪了什么。这是我的第一个静态库。我已经搜索过,但找不到任何与我的情况类似的帮助。请提及您还需要了解的其他内容。
谢谢。
答案 0 :(得分:0)
答案 1 :(得分:0)
我已经检查了这个并且对我来说它没有添加任何链接器标记就可以正常工作。
+ (void)joinConferenceWithName:(NSString *)name
在joinConferenceWithName
内写一个日志以打印出参数name
,并确保这是在调用,并且该方法内部出现了问题。
+ (void)joinConferenceWithName:(NSString *)name
{
NSLog(@"the name is: %@", name);
}
最后,请确保您已将最新修改的静态库添加到项目中。
您可以从here
下载工作样本答案 2 :(得分:-1)
@interface RankConferenceLib : NSObject
-(void)initEnvironment;
-(void)orientationChange;
-(void)joinConferenceWithName:(NSString *)name;
+(RankConferenceL *)SharedObject;
@end
在.m文件中...
static RankConferenceL *RankObject;
+(RankConferenceL *)SharedObject
{
if(RankObject == nil)
RankObject =[[RankConferenceL alloc] init];
return RankObject;
}
- (void)joinConferenceWithName:(NSString *)name
{
//....codes
}
您可以通过创建对象在任何其他类中全局访问其方法和变量,或者只需使用
导入文件 - (IBAction)join:(UIButton *)sender {
[[RankObject SharedObject] joinConferenceWithName:@"User"];
}