ios获取类的属性,获取CLPlacemark类所有属性,Declaration of 'objc_property_t' must be imported from module 'objecti
2016-04-08 09:46
831 查看
最近在做的项目中,定位后获得的
CLPlacemark类不知道用哪个属性的值来显示地理位置,所有调试的时候用了获取类的所有属性,再获取属性对应的值。一看就明白用哪个属性显示适合
应该特别注意的是在使用 objc_property_t 时先导入头文件 #import<objc/runtime.h>,否则报错:Declaration
of 'objc_property_t' must be imported from module 'objectiveC.runtime'before it is required.
调用的时候打印属性值:
CLPlacemark类不知道用哪个属性的值来显示地理位置,所有调试的时候用了获取类的所有属性,再获取属性对应的值。一看就明白用哪个属性显示适合
应该特别注意的是在使用 objc_property_t 时先导入头文件 #import<objc/runtime.h>,否则报错:Declaration
of 'objc_property_t' must be imported from module 'objectiveC.runtime'before it is required.
/** * 获取CLPlacemark 类的属性。 * * @param placeMarks 传入的类,其他类的属性方法类似 * * @return 返回存放属性的数组 */ - (NSArray *)getPlaceMarksAttribute:(id)placeMarks { unsigned int count; objc_property_t *properties = class_copyPropertyList([placeMarks class], &count); NSMutableArray *propertiesArray = [NSMutableArray arrayWithCapacity:count]; for(int i = 0; i < count; i++) { /* // 分步取属性 objc_property_t property = properties[i]; NSString *name = [NSString stringWithUTF8String:property_getName(property)]; NSString *attributes = [NSString stringWithUTF8String:property_getAttributes(property)]; NSLog(@"name0000:%@",name); NSLog(@"attributes0000:%@",attributes); */ const char *propertyName =property_getName(properties[i]); [propertiesArray addObject: [NSString stringWithUTF8String:propertyName]]; } free(properties); return propertiesArray; }
调用的时候打印属性值:
{ NSArray *attributeArr = [self getPlaceMarksAttribute:placeMark]; for (int tt = 0; tt < attributeArr.count; tt ++) { // 打印值 使用 valueForKey: NSLog(@"placeMark.%@:%@", attributeArr[tt], [placeMark valueForKey:attributeArr[tt]]); } }
相关文章推荐
- iOS开发应该选择Objective-C还是Swift
- RDLC报表 在WinForm里运行出现 "microsoft.reportviewer.processingobjectmodel未能加载"
- vs数据库访问出现Object reference not set to an instance of an object. 错误解决办法
- Java中Object有哪些公共类
- everything is object
- Failed to compile cuda_ndarray.cu: libcublas.so.7.5: cannot open shared object file
- object 类 “equals” 方法与 “ == " 之间的差别
- Objective C类方法load和initialize的区别
- Object-C中的内存管理 MRC、ARC以及Autoreleasepool的区别
- salesforce 零基础开发入门学习(十一)sObject及Schema深入
- js为object动态添加属性
- Objective-C(Swift) IBDesignable/IBInspectable
- Object C学习笔记16-委托(delegate)
- 3、Object对象的两大方法(hashCode-equals)总结
- 【Objective-C】04-第一个OC程序解析
- objective-c 输出格式符
- Objective-C NSString 操作
- python3学习笔记1--TypeError: 'dict' object is not callable的解决
- ES5规范之Object增强
- Objective-c MRC内存管理-野指针