`
iaiai
  • 浏览: 2196059 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ios 获取对象中属性的类型

 
阅读更多
/**
  * 返回对象中属性的类型
  * @return NSString 返回属性的类型
 **/
+ (NSString*)checkPropertyName:(id) obj propertyName:(NSString *)name {
    NSString* propertyType;
    
    unsigned int propertyCount;
    objc_property_t* properties = class_copyPropertyList([obj class], &propertyCount);
    for(int i=0;i<propertyCount;i++){
        objc_property_t property = properties[i];
        //属性名称
        const char* propertyName = property_getName(property);
        NSString* propertyNameStr = [NSString stringWithUTF8String:propertyName];
        
        //属性对应的类型名字
        char* typeEncoding = property_copyAttributeValue(property,"T");
        NSString* typeEncodingStr = [NSString stringWithUTF8String:typeEncoding];
        typeEncodingStr = [typeEncodingStr stringByReplacingOccurrencesOfString:@"@" withString:@""];
        typeEncodingStr = [typeEncodingStr stringByReplacingOccurrencesOfString:@"\\" withString:@""];
        
        if ([name isEqualToString:propertyNameStr]) {
            propertyType = typeEncodingStr;
            break;
        }
    }
    free(properties);
    
    return propertyType;
}
分享到:
评论

相关推荐

    ios 对象私有属性的访问和修改

    首先,Key-Value Coding(KVC)是Objective-C提供的一种间接访问对象属性的方式,即使这些属性未公开为公共接口。KVC允许我们通过字符串键来访问和设置值,这包括私有属性。要使用KVC,我们可以调用`valueForKey:`或...

    iOS通过获取对象的属性值来进行表单提交输入项的校验

    在Swift中,我们使用`Mirror`类来反射对象,获取其属性,并对每个属性进行非空检查。这同样提供了易于扩展和维护的验证机制。 总结一下,通过面向对象的方式处理表单验证,我们可以: 1. 将表单字段与验证逻辑解耦...

    ios 属性自动转换工具

    在iOS开发中,高效地处理网络请求返回的数据并将其转化为模型对象是十分关键的步骤。传统的做法是手动编写代码来解析JSON数据,并将其赋值给对应的模型类属性,这一过程繁琐且容易出错。"ios 属性自动转换工具"正是...

    iOS对象转字典 object2Dictionary

    "iOS对象转字典 object2Dictionary"这个话题聚焦于如何将Objective-C或Swift中的对象转换成字典(NSDictionary或Swift的Dictionary类型),进而可能进一步转化为JSON格式。这种转换在序列化和反序列化过程中扮演着...

    Mac/IOS 读取excel文件

    - 对每个工作表,使用`worksheet`属性获取`XLSWorksheet`对象。 - 使用`firstRow`和`lastRow`属性确定工作表中的行范围。 - 使用`firstCol`和`lastCol`属性确定列范围。 - 通过`cellValue:row:col:`方法读取特定...

    ios获取视频长度和当前播放时间

    2. **读取视频时长**:使用`AVURLAsset`的`duration`属性可以获取到视频的时长,该属性返回的是`CMTime`类型,包含了时间值和时间尺度两个部分。为了将时长转换为更常见的秒数,可以通过以下代码: ```objective-c ...

    iOS 给已有类添加属性

    1. **定义属性**:首先,你需要确定要添加的属性类型,是对象属性(如NSString、NSArray等)还是基本数据类型(如int、float等)。对于对象属性,通常我们会声明一个ivar(实例变量)来存储值;对于基本类型,可以...

    IOS获取设备名称

    在iOS开发中,获取设备名称是一项基础且重要的任务,它可以帮助开发者识别运行应用的特定设备类型,以便进行设备适配或者个性化展示。本教程将详细讲解如何在iOS中获取设备名称,以及涉及到的相关知识点。 首先,...

    iOS-iBeacon搜索读取硬件信息

    你可以访问每个`CLBeacon`对象的属性,如proximity(距离)、major、minor和accuracy(精度)等,获取iBeacon设备的相关信息。 七、ibeaconZFJDemo项目 "ibeaconZFJDemo"很可能是一个示例项目,包含了完整的iBeacon...

    iOS 获取本地音乐文件

    总之,iOS获取本地音乐并播放的过程涉及多个步骤,包括选取音乐、获取音乐文件路径、创建播放器对象以及控制播放。在开发过程中,熟练掌握AVFoundation框架和MediaPlayer框架的使用是至关重要的。同时,真机测试是...

    swift-实时修改您原生iOS应用程序的属性

    在iOS应用开发中,Swift语言提供了强大的功能,使得开发者能够实时修改原生应用程序的属性。这一特性对于快速迭代、调试和用户体验优化具有显著优势。在本文中,我们将深入探讨如何利用Swift来实现实时修改iOS应用的...

    iOS 获取手机的本地音乐

    在iOS开发中,获取手机本地音乐是常见的需求,这通常涉及到多媒体编程,特别是与Apple的Media Library服务交互。本文将详细介绍如何使用Objective-C或Swift语言来实现这一功能,以及涉及的相关知识点。 首先,我们...

    ios通过BLE读取蓝牙地址

    虽然无法直接获取MAC地址,但可以通过`CBPeripheral`对象的`identifier`属性来获取一个唯一的标识符,这可以在连接和断开后识别设备。`identifier`是一个`NSUUID`对象,不是MAC地址,但可以用于设备的唯一识别。 5...

    IOS读取pdf文档

    在iOS开发中,读取和显示PDF文档是一项常见的任务,特别是在构建阅读应用或者需要嵌入文档查看功能的应用中。本文将深入探讨如何在iOS平台上实现这个功能,主要围绕标题“iOS读取PDF文档”和描述中提到的通过继承...

    iOS runtime 方式归解档,存储多对象

    总结来说,iOS中的runtime归档与解档是一种强大的工具,它允许我们在运行时动态处理对象,无需关心对象的属性增删。通过遵循`NSCoding`协议并结合runtime特性,我们可以灵活地存储和恢复多个对象,实现数据持久化。

    iOS 对象属性详细介绍

    在iOS开发中,对象属性是Objective-C编程中的关键概念,它们定义了类实例的数据成员以及如何访问和修改这些数据。本文将深入探讨iOS对象的属性,包括其不同的修饰符,如`retain`、`strong`、`copy`、`weak`、`assign...

    iOS 数据持久性存储--属性列表存储

    本文将深入探讨iOS中的属性列表(Property List)存储方式,这是一种简单且常用的数据保存机制。 属性列表(Property List,简称plist)是一种XML格式,可以存储基础类型如字符串、数字、日期、数组、字典等。iOS...

    iOS 网络类型

    在iOS开发中,了解设备当前的网络类型是至关重要的,因为这直接影响到应用程序的数据加载策略和服务质量。"iOS网络类型"这一概念涉及到如何检测和管理移动设备上的网络连接状态,如WiFi、3G、4G等。下面我们将深入...

    ios继承对象的归档代码

    在iOS开发中,归档是将对象转换为可存储或传输的数据表示的过程,这通常用于持久化应用程序的状态或数据。归档技术基于Objective-C的Runtime系统,它允许我们动态地处理类和对象。当我们需要对继承关系中的对象进行...

Global site tag (gtag.js) - Google Analytics