2013-01-19 96 views
-1

首先,如果標題有誤導性,則表示抱歉。這實際上是我第一次使用Xcode創建的,所以我可能會對所有的東西都被稱爲等等。來自 - (IBAction)的呼叫+(無效)方法

所以,我有一個類有一些IBAction的,是這樣的:

// AppController.h 

#import <Foundation/Foundation.h> 

@interface AppController : NSObject { 

} 

+ (void)addItem; 

- (IBAction)addButton:(id)sender; 

@end 

和:

// AppController.m 

#import "AppController.h" 

@implementation AppController 

+ (void)addItem { 
    NSLog("Action"); 
} 

- (IBAction)addButton:(id)sender { 
    [[self class] addItem]; 
} 

當我運行該應用並點擊觸發該IBAction按鈕,應用程序掛起,Xcode窗口變爲選中狀態,並在行NSLog(...)上有綠色的「斷點」。

我不知道這個反應被稱爲什麼,也不知道我應該怎麼做。任何幫助表示讚賞!

回答

4
NSLog("Action"); 

NSLog()的第一個參數必須是NSString,而不是C字符串(char *)。您錯過了@字符:

NSLog(@"Action"); 

是正確的方法。

編輯:如果它只是一個錯字,並修復它後,問題仍然存在:那麼你很可能在該特定線上設置斷點。刪除或禁用斷點以使程序繼續。

+1

我很驚訝它甚至編譯。 – trojanfoe

+0

Woops,我很抱歉,但這只是這個問題上的一個錯字。我只是在那裏添加了'NSLog'而不是實際的代碼。不管那裏有什麼代碼,它總是會在方法的第一行產生相同的「斷點」。 –

+0

@trojanfoe指針,指針,它發出警告,但它通常不是一個錯誤... – 2013-01-19 17:05:31