[問題] 型別變換的問題

看板MacDev作者 (寂寞秋江一夜霜)時間11年前 (2013/11/19 02:10), 編輯推噓2(207)
留言9則, 5人參與, 最新討論串1/1
最近開始接觸 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

11/19 02:25, , 1F
就只是某種物件..你可以把它換成UIView * 或其他物件
11/19 02:25, 1F

11/19 03:33, , 2F
Fraction * 就是一個指向 Fraction 的 pointer
11/19 03:33, 2F

11/19 09:46, , 3F
這麼說來最後一行是宣告myFraction這個物件等於myNumber這
11/19 09:46, 3F

11/19 09:46, , 4F
個物件,讓一個物件等於另外一個物件?
11/19 09:46, 4F

11/19 10:09, , 5F
最後一行是指定一個pointer指向另一個pointer所指的物件
11/19 10:09, 5F

11/19 10:18, , 6F
id是任何形態的物件 從NSObject的init就可以看到
11/19 10:18, 6F

11/19 10:18, , 7F
最後一行就如上面講的 只是pointer給予另一個物件
11/19 10:18, 7F

11/19 10:19, , 8F
(Fraction *)可以想成你說的轉型 不寫通常也不會怎樣
11/19 10:19, 8F

11/19 10:20, , 9F
通常轉型都是is-a關係 只要不要搞混上下層關係就好
11/19 10:20, 9F
文章代碼(AID): #1IYbW7Y3 (MacDev)
文章代碼(AID): #1IYbW7Y3 (MacDev)