1
我可以標記一個不斷更改值以方便從方法訪問的UIColor嗎?我可以標記一個UIColor嗎?
我可以標記一個不斷更改值以方便從方法訪問的UIColor嗎?我可以標記一個UIColor嗎?
從iPhone SDK 3.1開始,您可以使用objc_setAssociatedObject
。你會這樣做:
objc_setAssociatedObject(myColor, infoObject, &keyObject, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
注1:該值必須是一個對象。您不能將整數設置爲值。
檢索值:
id aTag = objc_getAssociatedObject(myColor, &keyObject);
注2:keyObject必須完全你設定值時所使用的同一對象。如果您發送具有相同值的另一個對象,它將不起作用。
如果以後要釋放的標記值:
objc_setAssociatedObject(myColor, nil, &keyObject, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
(。由於一個錯誤,這並不在iPhone模擬器工作的更多信息,請參見this question)
你也可以閱讀this post,其中涉及使用這種方法來存儲密鑰。
注意:我並不是說這是處理問題的最佳方法。由於Objective-C的編程指南狀態,相關聯的對象主要用於情況下
你沒有訪問源 代碼爲類,或者如果 二進制兼容性的考慮,您 不能改變對象的佈局。
閱讀全部有關here。
澄清請。在UIColor中沒有標籤屬性,就像在UIView中一樣。如果你想要一個容易被許多方法使用的顏色對象,只需將它放在UIColor *類型的成員變量中即可。 –