2011-07-31 61 views
0

我想了解我的目標C類的屬性類型。我知道我可以使用運行時函數property_getAttributes(屬性),它返回一個C字符串這樣做:在iOS應用中使用客觀的c運行時功能

[email protected]"UIColor",&,N,VsomeColor_ // ivar was UIColor* someColor_; property was (nonatomic, retain) UIColor* someColor; 

或本:

Tf,N,vfontSize_ // ivar was CGFloat fontsize_; property was (nonatomic) CGFloat fontSize; 

然後我就可以分析該字符串,即,查找在最初的T之後和之後的逗號之前的部分。

我的問題是 - 這樣做可能會穩定嗎?或者,還有更好的方法?

+0

這些看起來都像實施細節一樣危險...... – BoltClock

+0

好的,那麼還有更好的方法嗎? –

+0

這是好的,但它引出了一個問題:爲什麼你需要這樣做?像這樣的運行時反思是很少需要的。 –

回答

2

property_getAttributes是Objective-C運行時的一部分,如here所述。

如果你想獲得關於ObjC類的某種自省,這是要走的路。我不認爲這是不穩定的,因爲Objective-C運行時本身非常穩定。此外還有官方指南(請參閱上面的鏈接),以便您可以相信它與其他官方Apple API一樣穩定。