,如果我在我的主文件下面對象變量和對象語法
int main (int argc, const char * argv[])
{
@autoreleasepool
{
Complex * c1 = [[Complex alloc] init];
Complex * c2 = [[Complex alloc] init];
Complex * compResult;
compResult = [c1 add: c2];
[compResult print];
{
return0;
{
/**implementation of add method **/
-(Complex *) add: (Complex *) f
{
Complex *result = [[Complex alloc] init]
result.real = real + f.real;
result.imaginary = imaginary + f.imaginary;
return result;
}
我知道,C1,C2爲對象,但compResult認爲是一個變量,直到我們做 compResult = [C1補充:C2 ]。
我在這裏的假設是add方法返回一個Object,並通過執行compResult = [c1 add:c2];我們將compResult設置爲等於該對象。那麼這是否將compResult轉換爲對象?
所以在我看來,compResult是一個接收[c1 add:c2]的結果的變量,但是當我們做[compResult print]時,我非常困惑,因爲我認爲你只能在發送消息(在這種情況下打印)到一個對象?
我想我的主要問題是在我們做compResult = [c1 add:c2]之後;是變量compResult持有/表示一個對象還是它實際上變成了對象?
看起來你對於對象和指針有一些嚴重的困惑。你可能想看看一些初學者教程。 –
感謝您的幫助。我現在正在閱讀一個初學者教程,所以我想我還沒有達到指針部分。你的回答確實能夠澄清一切。 – Brosef