PTT
Submit
Submit
选择语言
正體中文
简体中文
PTT
MacDev
[问题] 为什么NSMutableArray可有不同class物件
楼主:
bbbbbird
(Free!)
2015-01-05 15:28:15
感谢各位大大拨冗查看小弟的笨问题
小弟那天面试一间iOS开发者,之前就有听说老板本身写iOS神强
后来老板进来聊一聊以后,的确问了一些技术问题
大部份都能说个轮廓出来,就是有一题我直接说我不知道。。。
连想都没想过
就是如题‘为什么Obj-C的Array可以同时contain多个型态的物件?’
回家google半天,大部份的说明也都是说可以有不同class物件在里面
但是没有人说过原理,为什么C不行,Java不行
偏偏就是Obj-C可以咧。。。?
感谢各位大大的解答...^^
作者:
Blueshiva
(龙野南云)
2015-01-05 15:34:00
ObjC所有的物件都是继承自NSObject,所以NSArray只要检查丢进来的东西是NSObject就可以存了。C要这样搞也是可已,就是宣告一个type都是void的array就可以了
楼主:
bbbbbird
(Free!)
2015-01-05 15:39:00
所以就是因为所有物件都继承于NSObject...?XDDD原来这么简单,我好笨喔,谢谢难怪没人问!
作者:
darktt
(小朱)
2015-01-05 16:14:00
说NSObject的物件或是id物件都可以,id物件是抽象的物件
楼主:
bbbbbird
(Free!)
2015-01-05 16:30:00
感谢各位大大的解说><
作者:
uranusjr
(â†é€™äººæ˜¯è¶…級笨蛋)
2015-01-05 17:52:00
@darktt 其实不一样, id 不见得继承自 NSObject并没有规定 Objective-C class 一定要继承 NSObject (只是惯例), 这点和 Java 不一样
作者:
darktt
(小朱)
2015-01-05 22:13:00
我是有试过Root class,不过init的过程要自己完成就作罢所以一直无法验证Root Class是否可以使用id做替代
作者: appleway (苹果爱天空)
2015-01-06 00:35:00
id 是 typedef struct objc_object *id;
作者:
uranusjr
(â†é€™äººæ˜¯è¶…級笨蛋)
2015-01-06 00:36:00
我试过了, 只要有实作 retain 就可以被加入
作者: appleway (苹果爱天空)
2015-01-06 00:36:00
例如NSProxy 跟block 就不是继承NSObject,
作者:
uranusjr
(â†é€™äººæ˜¯è¶…級笨蛋)
2015-01-06 00:37:00
被移出需要实作 release, 其他一些功能需要其他 methods
作者: appleway (苹果爱天空)
2015-01-06 00:37:00
不过 他们都是Objective C object
作者:
howdiun
(Howdiun)
2015-01-06 09:16:00
都可以吧
作者:
ssccg
(23)
2015-01-06 09:34:00
Java为什么不行? 不就Object[] ?
作者:
uranusjr
(â†é€™äººæ˜¯è¶…級笨蛋)
2015-01-06 10:50:00
@ssccg 你在 Object[] 里放 int 给我看(啊我发现这例子不好, NSArray 也不行 XD 算了)
作者:
darktt
(小朱)
2015-01-06 11:41:00
int是C type所以不行,不过在swift下就没这个限制了
作者:
manlike
( )
2015-01-06 11:58:00
int又不是物件, Java可以放Integer, Obj-C可以用NSNumber
作者:
Blueshiva
(龙野南云)
2015-01-06 12:25:00
uranusjr马上就发现啦,一直追这点干嘛 XDD
作者:
uranusjr
(â†é€™äººæ˜¯è¶…級笨蛋)
2015-01-06 16:11:00
但我觉得 int 不是物件根本很脑残, Objective-C 本来就叠床架屋就算了, Java 硬模仿 C++ 又学不像就很智障
继续阅读
[问题] UILabel 显示 html 的问题
lsyjim
[问题] 请问itune connect可以看app移除个数吗?
goolu
[问题] NSView superView影响subView
chise
[问题] bundle ID
ssss9313
[问题] push 内容会出现返回的 slider 套件?
Piceman
[情报] Xcode版本大全载点
s80199
[问题] uiwebview 中播放影片
starkite
[问题] 加入我的最爱/加入购物车/标记关注...
OMG
[问题] ios notification
rainsky0617
[问题] wifi login
haves560
Links
booklink
Contact Us: admin [ a t ] ucptt.com