2013-11-01 49 views
0

不知道的部分字這究竟是如何,但基本上我這樣做:我如何可以訪問此打印出來

unsigned int propCount = 0; 
objc_property_t *properties = class_copyPropertyList([self class], &propCount); 

for(int idx = 0; idx < propCount; idx++) { 
    objc_property_t prop = *(properties + idx); 
    NSString *key = @(property_getName(prop)); 
    NSString *key2 = @(property_getAttributes(prop)); 

    NSLog(@"%@::%@", key,key2); 
} 

,並打印出

describeOther::[email protected]"UITextField",&,N,V_describeOther 

我該怎麼分配「 UITextField「的東西,或者它已經分配,​​我可以訪問它像key2 [1]什麼的?

編輯: 我想我可以做一個帶有包含約束的if語句,但不知道這是否是「最乾淨」的方式來做到這一點。

回答

1

獲取兩個雙引號的範圍並提取這兩個範圍之間的子串。

NSRange openQuote = [key2 rangeOfString:@"\""]; 
NSRange closeQuote = [key2 [email protected]"\"" options:NSBackwardsSearch]; 

NSUInteger start = openQuote.location + openQuote.length; 
NSUInteger end = closeQuote.location; 
NSRange nameRange = NSRangeMake(start, end - start); 
NSString *name = [keys substringWithRange:nameRange);