2015-01-21 96 views
1

我正在iOS中構建一個靜態庫。在我的項目中導入該庫後,我在其他鏈接器標誌中添加了-ObjC。但是當我調用類方法(目前有3個可用)時,其中2個被調用並正確執行,但最後一個出現此錯誤:"+[RankConferenceLib joinConferenceWithName:]: unrecognized selector sent to class 0x5044dc"iOS靜態庫,無法訪問某些類方法

這是圖書館的.m文件

+ (void)joinConferenceWithName:(NSString *)name 
{ 
     //....codes 
} 

,並在我的項目,我稱他們爲圖書館

@interface RankConferenceLib : NSObject 


+(void)initEnvironment; 
+(void)orientationChange; 
+(void)joinConferenceWithName:(NSString *)name; 
@end 

我的頭文件

- (IBAction)join:(UIButton *)sender { 
    [RankConferenceLib joinConferenceWithName:@"User"]; 
} 

請告訴我我在這裏錯過了什麼。這是我的第一個靜態庫。我已經搜索,但找不到與我在這裏的情況類似的任何幫助。請提一下你需要知道的其他內容。

謝謝。

+0

這很奇怪,如果你可以上傳項目到github,我會喜歡e找到問題。 – KudoCC 2015-01-21 06:51:33

回答

0

我已經檢查這個運行和對我來說這沒有添加任何連接標誌工作的罰款。

的唯一一個錯誤可能是發生了一些事情的+ (void)joinConferenceWithName:(NSString *)name

裏面寫日誌joinConferenceWithName內印出參數name,並確保這一呼籲,問題是,方法內發生。

+ (void)joinConferenceWithName:(NSString *)name 
{ 
    NSLog(@"the name is: %@", name); 
} 

最後,確保你補充的最新修改的靜態庫到您的項目。

您可以從here

+0

最後,我退出了我的Xcode,清理了這兩個項目,並且新添加了庫,然後正確找到了我的方法。謝謝@Ramshad – Bobby 2015-01-21 07:08:34

-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"]; 
}