作者yckang (寂寞秋江一夜霜)
看板MacDev
标题[问题] 型别变换的问题
时间Tue Nov 19 02:10:12 2013
最近开始接触 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
1F:→ Piceman:就只是某种物件..你可以把它换成UIView * 或其他物件 11/19 02:25
2F:→ yr:Fraction * 就是一个指向 Fraction 的 pointer 11/19 03:33
3F:→ yckang:这麽说来最後一行是宣告myFraction这个物件等於myNumber这 11/19 09:46
4F:→ yckang:个物件,让一个物件等於另外一个物件? 11/19 09:46
5F:推 Blueshiva:最後一行是指定一个pointer指向另一个pointer所指的物件 11/19 10:09
6F:推 tom19830924:id是任何形态的物件 从NSObject的init就可以看到 11/19 10:18
7F:→ tom19830924:最後一行就如上面讲的 只是pointer给予另一个物件 11/19 10:18
8F:→ tom19830924:(Fraction *)可以想成你说的转型 不写通常也不会怎样 11/19 10:19
9F:→ tom19830924:通常转型都是is-a关系 只要不要搞混上下层关系就好 11/19 10:20