如何访问此打印件的一部分

时间:2013-11-01 14:48:09

标签: ios

不确定如何说出来,但基本上我这样做:

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::T@"UITextField",&,N,V_describeOther

如何将“UITextField”分配给某个东西或者它已经分配了,我可以像key2 [1]那样访问它?

编辑: 我想我可以使用包含约束的if语句,但不确定这是否是“最干净”的方法。

1 个答案:

答案 0 :(得分:1)

获取两个双引号的范围并提取这两个范围之间的子字符串。

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

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