13
我在閱讀 Apple的article about Objective-C runtime type encoding strings 和一些方法在其類型字符串中有數字。ObjC方法類型編碼字符串中的數字是什麼?
[email protected]:[email protected]
是什麼意思?
我在閱讀 Apple的article about Objective-C runtime type encoding strings 和一些方法在其類型字符串中有數字。ObjC方法類型編碼字符串中的數字是什麼?
[email protected]:[email protected]
是什麼意思?
這看起來像一個設置器方法的這樣一個編碼:
- (void) setSomething:(id) anObject
進行分解:
v
裝置void返回類型12
意味着參數幀的大小(12字節)@0
意味着在參數的字節偏移量0處存在一個Objective-C對象類型(這是每個Objective-C方法中的隱含的self
對象):4
意味着在字節偏移4處有一個選擇器(這是每個方法中隱含的_cmd
,這是用於調用方法的選擇器)。@8
意味着有在字節另一個目的-C的對象類型偏移8.
所以第一個數字是參數幀的大小,和其它的是偏移...謝謝! – 2012-07-15 13:12:45
未來的讀者請注意:[bbum表示偏移數字在這一點上毫無意義](http://stackoverflow.com/a/11527925/603977)。 – 2013-02-01 20:24:49
。 12不是參數框架的大小,如果你看到我的問題[這裏]會變得更清晰(http://stackoverflow.com/questions/41502199/deciphering-objc-method-description-in-swift-conversion-decoding -questions) – clearlight 2017-01-07 18:35:37