我是新來的目標c,我只是想知道我將如何調用具有返回語句值的方法?如何調用目標c中的方法?
例
-(NSString*) exampleString
{
NSString *example= @"hello this a test";
return example;
}
現在我怎麼會呼籲上述方法得到的返回值?
由於
我是新來的目標c,我只是想知道我將如何調用具有返回語句值的方法?如何調用目標c中的方法?
例
-(NSString*) exampleString
{
NSString *example= @"hello this a test";
return example;
}
現在我怎麼會呼籲上述方法得到的返回值?
由於
您可以通過將消息傳遞給實現該方法的類的實例來調用方法。然後評估爲一個右值,就像一個C函數調用一樣。
因此,例如
NSString *fetchedExample = [self exampleString];
編輯:大衛的回答下面也值得重複。在Objective-C中,對象是不透明的,並且(有一些例外情況)只能在堆上生活,所以你會傳遞指向它們的指針而不是事物本身。
的NSString *串= [objectContainingTheMethod exampleString];
查看Objective C編程指南,特別是方法的聲明和使用。
NSString *returnedValue = [self exampleString];
歡迎使用Objective-C,它很簡單。當你調用一個Objective-C的方法使用[object message]
語法
NSString *exampleString = [self exampleString]; // self refers to the object or class
如果你想傳遞一個參數,這可能看起來像
[self getText:@"hello"];
- (NSString *)getText:(NSString *)text
{
return text;
}
很棒,今天學到了新東西。 – CroiOS 2012-11-03 15:06:08
NSString *returnedText = [self methodName:parameter];
所以你的情況,
NSString *returnedText = [self exampleString];
只需注意:確保將方法的返回類型更改爲「NSString *」而不是「NSString」作爲NSStri ng對象不能靜態聲明。
希望這有助於
先生,你對你的代碼中的錯誤,它應該是這樣的:
-(NSString *) exampleString{
NSString *example= @"hello this a test";
return example;
}
的錯誤是,你不能用一個方法而返回類型返回一個指針這不是一個指針(你最初有-(NSString)exampleString ...
)。
現在要回答你的問題,這是一個實例方法,這是因爲在聲明開始時它使用短劃線( - )。還有其他類型的方法,如類方法,通過在聲明(+)中使用加號很容易區分它們。
由於這是一個實例方法,因此您需要有一個實例能夠調用此方法,因此首先必須聲明該類的實例,然後調用它,確保初始化它並分配一些空間(如果需要的話):
JamesHowardClass *myInstance=[[JamesHowardClass alloc] init];
NSLog(@"Rocking out my first method %@", [myInstance exampleString]);
//Since you allocated some space, you should take care of the memory management
[myInstance release];
現在看看另一種可能的用途,如果你在呼喚你的類聲明中這個方法,你應該這樣稱呼它:
NSLog(@"Rocking out my first method %@", [self exampleString]);
字self
,代表一個實例c類中的類本身它只能在實例方法中使用,而不能用於類方法。
但讓我們說我有這種方法正在進行的其他事情......他們都會再次觸發我調用[self exampleString];?謝謝 – jamesHoward 2012-03-03 02:02:01
是的。 '[self exampleString];'將消息'exampleString'發佈到'self'。因爲你有一個具有該名稱的方法的顯式實現,這會導致該方法執行並返回結果。在幕後還有很多東西(例如,'self'實際上不需要實現'exampleString';它可以決定在運行時以什麼方式動態執行,如果它喜歡的話),但它在概念上與調用C函數,所有的副作用 - Objective-C是絕對必要的。 – Tommy 2012-03-03 02:07:24