您现在的位置是:主页 > news > 网站群建设的目的意义/中国万网域名查询

网站群建设的目的意义/中国万网域名查询

admin2025/5/29 20:07:12news

简介网站群建设的目的意义,中国万网域名查询,优秀的网站建设公司,能免费做微信群推广的网站这个的话并不是说 可以 在程序运行的时候 来几个 未知的东西 就添加什么 1 2 3 4 5的属性。而是可以在系统原有类的基础上 给那个类 集合实际的工程来添加你方便实用的东西。比如 一个 label 有 一个 backgroundcolor属性,我要给它添加一个 其他的 比如 文…

网站群建设的目的意义,中国万网域名查询,优秀的网站建设公司,能免费做微信群推广的网站这个的话并不是说 可以 在程序运行的时候 来几个 未知的东西 就添加什么 1 2 3 4 5的属性。而是可以在系统原有类的基础上 给那个类 集合实际的工程来添加你方便实用的东西。比如 一个 label 有 一个 backgroundcolor属性,我要给它添加一个 其他的 比如 文…

这个的话并不是说  可以  在程序运行的时候   来几个 未知的东西  就添加什么  1 2 3 4 5的属性。而是可以在系统原有类的基础上  给那个类 集合实际的工程来添加你方便实用的东西。比如  一个 label  有 一个  backgroundcolor属性,我要给它添加一个 其他的 比如 文字 第一个字的color,那么就可以用这种技术了。

 

一下是从网上找的一个demo

  • 首先定义一个类
#import@interface Person : NSObject
@property (assign, nonatomic) NSInteger age; -(void)run; @end #import "Person.h" @implementation Person -(void)run{ NSLog(@"%s",__func__); } @end
  • 定义分类
#import "Person.h"
@interface Person (PersonExtention) @property (copy, nonatomic) NSString *name; -(void)saySex; @end #import "Person+PersonExtention.h" #import <objc/runtime.h> @implementation Person (PersonExtention) //定义常量 必须是C语言字符串 static char *PersonNameKey = "PersonNameKey"; -(void)setName:(NSString *)name{ /* OBJC_ASSOCIATION_ASSIGN; //assign策略 OBJC_ASSOCIATION_COPY_NONATOMIC; //copy策略 OBJC_ASSOCIATION_RETAIN_NONATOMIC; // retain策略 OBJC_ASSOCIATION_RETAIN; OBJC_ASSOCIATION_COPY; */ /* * id object 给哪个对象的属性赋值 const void *key 属性对应的key id value 设置属性值为value objc_AssociationPolicy policy 使用的策略,是一个枚举值,和copy,retain,assign是一样的,手机开发一般都选择NONATOMIC objc_setAssociatedObject(id object, const void *key, id value, objc_AssociationPolicy policy); */ objc_setAssociatedObject(self, PersonNameKey, name, OBJC_ASSOCIATION_COPY_NONATOMIC); } -(NSString *)name{ return objc_getAssociatedObject(self, PersonNameKey); } -(void)saySex{ NSLog(@"%s----%@",__func__,self); } @end

总结:在分类中@property不会生成_变量,也不会实现getter和setter方法,我们可以手动实现如下

-(NSString *)name{return @"name";
}
-(void)setName:(NSString *)name{ }

但是这样是没什么意义的,而且分类中不允许定义变量,所以只能用runtime类

 

欢迎大家   评论来  讨论 我的第一段见解是否正确