2016-09-25 38 views
1

所以我有這樣一個單:爲X無可見@interface宣佈選擇Y於一個單身

#import "SCAppManager.h" 

@implementation SCAppManager 

+ (instancetype)sharedApplication { 
    static SCAppManager *sharedApplication = nil; 
    static dispatch_once_t onceToken; 

    dispatch_once(&onceToken, ^{ 
     if (sharedApplication == nil) { 
      sharedApplication = [[SCAppManager alloc] init]; 
     } 
    }); 

    return sharedApplication; 
} 

+ (void)test { 
    NSLog(@"test"); 
} 

@end 

而且它的接口是這樣的:

#import <Foundation/Foundation.h> 

@interface SCAppManager : NSObject 

+ (instancetype)sharedApplication; 
+ (void)test; 

@end 

但是,當嘗試使用在[[SCAppManager sharedApplication] test];在ViewController中,我得到的錯誤:

No visible @interface for 'SCAppManager' declares the selector 'test'

我已經看所有的可能性,我已經IM移植我的singleton類correclty並在公共接口中聲明我的方法。我也在這裏搜索了一些答案,但所有的修補程序都不適合我。

有沒有人遇到過這個問題? 謝謝!

回答

2

錯誤即將到來是因爲您將test聲明爲class method而不是實例方法。你可以通過它的類名調用類的方法,所以你應該把它想:

[SCAppManager test]; 

或改變方法實例方法:

.H

@interface SCAppManager : NSObject 

+ (instancetype)sharedApplication; 
- (void)test; 

@end 

.M

@implementation SCAppManager 

// Other methods 

- (void)test 
{ 
    NSLog(@"test"); 
} 

@end 

並使用它像:

[[SCAppManager sharedApplication] test]; 
+0

我很困惑與其他事情,我錯過了。非常感謝你,@ midhun-mp! –

+0

@ GabrielOliva:不客氣。快樂編碼! –

相關問題