OC对象中不能给分类加入属性。可是在实际开发中。常常为了更好的性能须要给分类加入属性,那么

加入的属性不能有默认的成员变量。须要我们自己实现set和get方法,要用到执行时

例如以下:

#import <objc/runtime.h>

//执行时的关联对象。动态加入属性

const void *URLStringKey =
"URLStringKey";

//set方法

- (void)setUrlStr:(NSString *)urlStr

{

objc_setAssociatedObject(self,
URLStringKey, urlStr, OBJC_ASSOCIATION_COPY_NONATOMIC);

}

//get方法

- (NSString *)urlStr

{

return
objc_getAssociatedObject(self,
URLStringKey);

}

OC对象给分类加入属性的更多相关文章

  1. oc中的分类/协议/属性

    1.分类:当我们想给某个类加一些方法时,如果不想通过继承这个类来实现,可以通过分类给这个类加一些行为,这个过程与继承相比更加轻量化. @interface NSString (SubClass) -( ...

  2. Object 对象(对象的分类、属性(属性名和属性值)、基本数据类型与引用数据类型区别)

    Object——引用数据类型 基本数据类型的不足之处:基本数据类型是单一的值,不能表现出值与值之间的所属关系 object分为内建对象.宿主对象和自定义对象 a 内建对象:ES标准中定义的对象,在任何 ...

  3. 【OC底层】OC对象本质,如 isa, super-class

    Objective-C的本质 1.我们编写的Objective-C,底层现实都是C/C++,代码生成步骤如下:   2.在OC中的所有面向对象的实现,都是基于C/C++的数据结构实现的 3.将Obje ...

  4. Runtime应用(二)使用对象关联为分类增加属性(每个对象的属性互不干扰)

    一.对象的关联方法有 1. void objc_setAssociatedObject(id object, const void *key, id value,objc_AssociationPol ...

  5. OC对象的本质及分类

    Object-C的底层都是通过C/C++来实现的,所以OC中的对象也会转化成C/C++中的某一个数据结构, 我们在终端里通过指令 xcrun -sdk iphoneos clang -arch arm ...

  6. OC对象里面包含的结构体类型的属性,不能对该结构体属性的成员单个进行修改

    OC对象里面包含的结构体类型的属性,不能对该结构体属性的成员单个进行修改,需要对OC对象的结构体属性整体赋值. 关于网上很多博客写着“结构体类型里面的某个属性如果想要修改是不允许单个修改的” 之解释: ...

  7. 用C语言封装OC对象(耐心阅读,非常重要)

    用C语言封装OC对象(耐心阅读,非常重要) 本文的主要内容来自这里 前言 做iOS开发的朋友,对OC肯定非常了解,那么大家有没有想过OC中NSInteger,NSObject,NSString这些对象 ...

  8. JavaScript常用对象的方法和属性

    ---恢复内容开始--- 本文将简单介绍JavaScript中一些常用对象的属性和方法,以及几个有用的系统函数. 一.串方法 JavaScript有强大的串处理功能,有了这些串方法,才能编写出丰富多彩 ...

  9. IOS基础之 (四) OC对象

    一 建立一个OC的类 完整的写一个函数:需要函数的声明和定义. 完整的写一个类:需要类的声明和实现. 1.类的声明 声明对象的属性和行为 #import <Foundation/Foundati ...

随机推荐

  1. 【C语言疯狂讲义】(七)C语言进制转换

    1.计算机中的进制 2进制:逢二进1      0  1 8进制:逢八进1      0  1   2  3  4  5  6  7 10进制:逢十进1  默认的进制  0 - 9 16进制:逢十六进 ...

  2. mysql增量备份(2/2)

    前言 这是在百度文库里看到的文章,原名叫做<MYSQL 完全与增量备份及恢复文档 >,是关于完全备份和增量备份以及恢复文档的...... 文档介绍 本文档采用 mysqldump  对数据 ...

  3. FBXImport

    using UnityEditor; public class MyEditor : AssetPostprocessor{ public void OnPreprocessModel() { Mod ...

  4. WP8简单的计算器

    <Grid x:Name="LayoutRoot" Background="Transparent"> <Grid.RowDefinition ...

  5. sshd服务安装和配置管理

    1.SSHD简介(介绍) SSH协议:安全外壳协议,为Secure Shell的缩写,SSH为建立在应用层和传输层基础上的安全协议. sshd服务使用SSH协议可以用来进行远程控制,或在计算机之间传送 ...

  6. 使用Linux环境变量教程

    什么是环境变量? bash shell用一个叫作环境变量( environment variable)的特性来存储有关shell会话和工作环境的信息(这也是它们被称作环境变量的原因).这项特性允许你在 ...

  7. ModelSim高级使用进阶_1_do文件和批处理文件使用_Camp

    https://wenku.baidu.com/view/50fb251914791711cc7917fd.html https://wenku.baidu.com/view/73187dcefe47 ...

  8. 免费开源C# 论坛

    http://stackoverflow.com/questions/255591/who-knows-a-good-free-open-source-forum-in-c 1. http://yet ...

  9. 如何理解HTTP协议的“无连接,无状态”特点

    是一个属于应用层的面向对象的协议,HTTP 协议一共有五大特点:1.支持客户/服务器模式;2.简单快速;3.灵活;4.无连接;5.无状态. 无连接 无连接的含义是限制每次连接只处理一个请求.服务器处理 ...

  10. Linux学习之tune2fs

    这是Linux系统用于文件系统自检的工具. 常用选项 -l 查看文件系统信息 -c max-mount-counts 设置强制自检的挂载次数,如果开启,每挂载一次mount conut就会加1,超过次 ...