[英]iOS static library, cannot access some class methods
我在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"];
}
请告诉我我在这里想念的东西。 这是我的第一个静态库。 我已经搜索过,但找不到与我在这里遇到的情况类似的任何帮助。 请提及您需要知道的其他内容。
谢谢。
我已经检查了这一点,对我来说,它在没有添加任何链接器标记的情况下工作正常。
唯一的一种错误可能性是+ (void)joinConferenceWithName:(NSString *)name
内部发生了某些事情
在joinConferenceWithName
内写一个日志以打印出参数name
,并确保此name
正在调用并且该方法内部出现问题。
+ (void)joinConferenceWithName:(NSString *)name
{
NSLog(@"the name is: %@", name);
}
最后 ,确保已将最新修改的静态库添加到项目中。
您可以从此处下载工作样本
@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"];
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.