看板 MacDev 關於我們 聯絡資訊
最近開始接觸 Objective-C ,書中提到型別變換時,用了一個例子, 我不是很明白他的意思,例子如下: id myNumber; Fraction *myFraction; .... .... .... myFraction = (Fraction *) myNumber; 第一行宣告 myNumber 這個變數的型態是 id 第二行宣告 參照 Fraction 這個類別產生 myFraction 這個物件 中間略過 最後這一行我不是很懂他的意思, 看起來是把 myFraction 這個物件的值指定為 myNumber 但物件的值這樣指定的意思是? 再者等號的右邊把 myNumber 的型態由 id 轉為 Fraction * 但這例子中我無法理解 Fraction * 這個型態指的是什麼? 麻煩各位網友解惑,謝謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.116.80.24
Piceman:就只是某種物件..你可以把它換成UIView * 或其他物件 11/19 02:25
yr:Fraction * 就是一個指向 Fraction 的 pointer 11/19 03:33
yckang:這麼說來最後一行是宣告myFraction這個物件等於myNumber這 11/19 09:46
yckang:個物件,讓一個物件等於另外一個物件? 11/19 09:46
Blueshiva:最後一行是指定一個pointer指向另一個pointer所指的物件 11/19 10:09
tom19830924:id是任何形態的物件 從NSObject的init就可以看到 11/19 10:18
tom19830924:最後一行就如上面講的 只是pointer給予另一個物件 11/19 10:18
tom19830924:(Fraction *)可以想成你說的轉型 不寫通常也不會怎樣 11/19 10:19
tom19830924:通常轉型都是is-a關係 只要不要搞混上下層關係就好 11/19 10:20