`
iaiai
  • 浏览: 2146912 次
  • 性别: 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 对象私有属性的访问和修改

    ios 对象私有属性的访问和修改,一种方法是通过KVC进行处理, 另外一种就是神通广大的Runtime 了。

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

    通过遍历对象的属性值,进行表单提交的非空判断等等。 代码很简单,主要是面向对象的思想,提供一种思路。 感兴趣的同学,可以试着提升其抽象度

    iOS 数据持久化(二)对象归档ArchiverDemo

    iOS中有五种持久化数据的方式:属性列表、对象归档、NSUserDefaults、SQLite3和Core Data。 本文介绍对象归档来持久化数据。归档的作用就是将对象以文件的形式保存到磁盘中,以使得数据序列化和持久化。 使用归档的...

    关于iOS获取属性你真的了解吗?

    属性对各位iOS开发者来说应该都不陌生,如果iOS中谈到取属性,相信大家都会夸夸其谈,不就是get方法吗?或者大谈kvc取属性的机制。不得不说这些也是对的。这时大家可能就疑惑了,那你还要说啥的!!大家不妨想想,...

    ios-基于FMDatabase的封装,存储读取直接面向对象,runtime实现,一句话实现增删改查.zip

    参照MJExtionsion,用runtime实现遍历模型属性,数据存储读取直接面向对象,递归实现存储读取模型嵌套模型,不需要再写sql语句。。。框架还在慢慢完善中,已经在项目中运用......大家有啥想法都可以给我说说, git@...

    ios-在FMDB基础上,Runtime实现的Database数据存储读取直接面向对象,递归存储读取模型嵌套模型.zip

    不仅可以处理系统自带的属性字段,还能将模型中的模型转成表数据存储,数据读取与存储直接面向对象:上传的代码是实现源代码不是demo(比较大),大家可以看看,完整demo地址:...

    iOS中json解析出现的null,nil,NSNumber的解决办法

    数据结构为 {key:value,key:value,…}的键值对的结构,在面向对象的语言中,key为对象的属性,value为对应的属性值,所以很容易理解,取值方法为对象.key 获取属性值,这个属性值的类型可以是 数字、字符串、数组...

    iOS 数据持久化(一)plistDemo

    iOS中有五种持久化数据的方式:属性列表、对象归档、NSUserDefault、SQLite3和Core Data 本文章讲述通过属性列表的方式持久化数据,这个方法也是我们平时最经常用到的方式。比如应用程序的配置和个性化的设置,一般...

    《iOS6开发指南》精彩书摘

    iOS中开发性能优化方法,其中包括:内存优化、资源文件优化、延迟加载、持久化优化、使用可重用对象、多线程以及程序编译参数等方面介绍性能优化。 第18章“管理好你的程序代码——代码版本控制”。学习如何使用Git...

    ios-RuntimeDatabase数据存储读取直接面向对象,递归实现存储读取模型嵌套模型.zip

    参照MJExtionsion,用runtime实现遍历模型属性,数据存储读取直接面向对象,递归实现存储读取模型嵌套模型,,不需要再写sql语句。。。框架还在慢慢完善中,已经在项目中运用......大家有啥想法都可以给我说说, git@...

    SwiftUI iOS 开发入门教学

    SwiftUI iOS 开发入门教学 视频列表 https://www.youtube.com/playlist?list=PLliocbKHJNwuLHJlVv6q5tKJxJltjBspC 苹果技术 https://developer.apple.com/documentation/technologies 课程详细 Xcode+SwiftUI入门...

    PropertyMapper:Objective-C iOS应用程序的属性映射

    停止在iOS应用中重复数据解析代码。 数据解析是我们在应用程序中需要执行的最常见的任务之一,但是仍然有很多人手动进行解析,始终为需要映射的每个类重复相同的代码。 通常的解析需要执行以下步骤: 确保将...

    ios开发记录

    //在oc中,空对象调用方法或属性不会引起程序报错或崩溃,但是也不会有任何事件发生 // NSString *str = nil; // [str length]; //判断两个字符串是否相等,不能使用==,使用等号是判断两个对象是否是一个对象,...

    ios-AddressBookTest.zip

    iOS8下,addressBook对象转OC对象。iOS9使用CNContact 支持读取/写入多种联系人属性。 目前的缺陷:每次写入都新建一个新的联系人,不能判断要写入的联系人是否已经存在。

    iOS13原生端适配攻略(推荐)

    这次iOS 13系统升级,影响范围最广的应属KVC访问修改私有属性了,直接禁止开发者获取或直接设置私有属性。而KVC的初衷是允许开发者通过Key名直接访问修改对象的属性值,为其中最典型的 UITextField 的 _...

    运行时:一个Swift运行时库,用于查看类型信息以及动态获取和设置属性

    运行时是一个Swift库,可为您提供更多的运行时功能,包括获取类型元数据,通过反射设置属性以及为本机swift对象进行类型构造。 类型信息 TypeInfo公开有关本机Swift结构,协议,类,元组和枚举的元数据。 它捕获属性...

    TableMadness:一个示例项目,显示如何在iOS中从UITableView添加和删除行

    桌痴一个示例项目,显示如何在iOS中从UITableView添加和删除行使UITableView与从远程数据源获取的数据保持同步可能很棘手。 必须仔细管理在表中添加,删除和重新加载特定行,以防止内部不一致,内部不一致会导致异常...

    ios开发之数据的持久化存储机制

    IOS中数据的持久化保存这块内容,类似于Android中文件的几种常见的存储方式。 对于数据的持久化存储,ios中一般提供了4种不同的机制。1.属性列表2.对象归档3.数据库存储(SQLite3)4.苹果公司提供的持久性工具...

    iOS多媒体音频(下)-录音及其播放的实例

    上一篇中总结了iOS中音效和音频播放的最基本使用方法,其中音频的播放控制是使用AVFoundation.framework框架中的AVAudioPlayer播放器对象来实现的,而这里音频的录制则是使用了同样框架下的一个叫AVAudioRecorder的...

Global site tag (gtag.js) - Google Analytics