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