2014-02-27 28 views
0

我是新來的目標c和im有一些對象的問題。Objective-c對象不返回或打印字符串

我相信該程序的語法是正確的,但它似乎沒有返回任何值,甚至從該方法中輸出(NSLog)。

任何幫助,將不勝感激:)

#import <Foundation/Foundation.h> 

@interface XYZPerson : NSObject 

- (NSString *)sayHello; 

@end 

@implementation XYZPerson 

- (NSString *)sayHello { 
    NSString *test = @"test"; 
    return test; 

} 

@end 


int main(int argc, const char * argv[]) 
{ 
    XYZPerson *newPerson; 
    NSString *getString = [newPerson sayHello]; 
    NSLog(@"the returned string is :%@", getString); 
    return 0; 
} 
+0

您從不創建XYZPerson對象。 –

+2

(你應該告訴我們實際記錄的是什麼,可能是「返回的字符串是:」。) –

回答

2

你必須創建的XYZPerson的實例並將其分配給newPerson

newPerson = [[XYZPerson alloc] init]; 

否則newPersonnilnil調用方法總是返回nil

+1

+1給你和我同時得到同樣的結論 –

+0

@MichaelDautermann歡呼! –

2

newPerson」 爲空時,你怎麼稱呼它。

你需要做的:

newPerson = [[XYZPerson alloc] init]; 

調用它的方法了。

0

添加在:

newPerson = [[XYZPerson alloc] init]; 

正下方:

XYZPerson *newPerson; 

您從未初始化XYZPerson對象,這就是爲什麼它返回null。

相關問題