PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
MacDev
[問題] objective-c 新手指標請教
作者:
wrt
(一片小蛋糕)
2016-08-31 01:58:54
知道指標是回傳記憶體位置
但是下面的code有點不了解
MyTime *time = [[MyTime alloc] init];
這段我大概懂,要求一段記憶體存放MyTime物件,用time指著那個記憶體.
time.hour = 10;
這段我就比較不懂,我知道是想要宣告hour=10
可是為什麼不是 *time.hour = 10;
___________
再讀了一些資料了解到objective-c 物件的傳遞訊息特性。
不過還是有些地方不了解
如果一般宣告pointer
int a = 10;
int *b = &a; (這可以分解成int *b; b=&a)
*b == 10;
b == 0x00001
上述應該是沒有錯誤吧?
那麼一開始的問題如果已經用*time宣告time是一個地址變數了
那為何之後不是*time.hour=10
或是[*time setHour:10]
time裡面不是只有地址而已嗎?要找到setHour不是應該是要*time找到地址對應的值setH
our才能傳訊息嗎?
還是說object的pointer比較不一樣?
作者:
uranusjr
(â†é€™äººæ˜¯è¶…級笨蛋)
2016-08-31 04:45:00
Objective-C object 的 dot notation 不是指標存取, 是特殊語法, 在這裡對等於 [time setHour:10]
http://d.pr/15F45
這裡有幾個例子和建議
作者:
wrt
(一片小蛋糕)
2016-08-31 09:57:00
謝謝樓上我研究看看..
作者:
Blueshiva
(龍野南雲)
2016-08-31 12:15:00
因為再底層是呼叫objc_msgSend(id self, SEL op, ...);而id本身就是一個指向 object 的指標
作者: appleway (蘋果愛天空)
2016-08-31 12:45:00
btw, *time.hour shoulde be (*time).hour
繼續閱讀
[問題]參考UI的類型網站,或者類似APP推薦參考
LiHowDie
[心得] 結合 iOS 10 的 User Notifications
chilam22
Re: [問題] 讀MSSQL資料
ak77now
[請益] 關於送審 - 要求註冊功能
areyo
[問題] 請教tableview reuse的問題
larry122
Re: [問題] swift 不要用 as! class ???
darktt
[問題] swift 不要用 as! class ???
tentenlee
[問題] Nsdata轉字串卻回傳null
shine1124
[問題] file template修改
petertom
[問題] 升級xcode7一定要先升Mac OS
shine1124
Links
booklink
Contact Us: admin [ a t ] ucptt.com