Property属性,amp;nbsp;KVC键值编码OC…
@property NSString *gender;
person.gender = @"妖";
NSLog(@"%@",person.gender);//点语法
@property NSInteger age;
//@synthesize name = _name;
- (NSString *)description
2.实现可以省略实例变量的声明(系统自动帮你生成属性名 加下划线的实例变量 如:_name)
Teacher *tea = [[Teacher alloc]init];
tea.name = @"小仓";
tea.age = 18;
tea.score = 85.3;
assign 默认值 基本数据类型使用assign修饰,代理属性使用assign修饰
retain 对象类型一般使用retain
readWrite : 可读可写,自动帮你生成setter 和getter 方法 默认值
//属性修饰符可以写多个,每一个修饰符之间用逗号隔开
//系统默认readwrite ,平时可以不写
@property (nonatomic,copy,readwrite,setter=setAAA:,getter=AAA)NSString *name;
@property (atomic,copy,readwrite)NSString *gender;
Boy *boy = [Boy boyWithName:@"zhangsan" gender:@"yao" age:18];
// boy.age = 18; error!!
[boy setAAA:@"Lisi"];
NSLog(@"%@",[boy AAA]);
boy.name = @"Wanger";
NSLog(@"%@",boy.AAA);
boy.name = @"Mazi";
@property (nonatomic,copy)NSString *name;
@property(nonatomic,copy) NSString *sex;
@property (nonatomic,assign)NSInteger age;
@property (nonatomic,assign)CGFloat height;
//- (void)sayHi; error!!!
- (id)initWithGirlFriend : (NSString *)name sex : (NSString *)sex age : (NSInteger)age height : (CGFloat)height;
+ (id)girlWithGirlFriend : (NSString *)name sex : (NSString *)sex age : (NSInteger)age height : (CGFloat)height;
//当属性生成的setter和getter方法的实现,不满足你的需求时,可以重写setter和getter方法
- (void)setName:(NSString *)name
{
NSLog(@"你好小姐");
// _name = name;
// self.name = name; //self.name == [self setNane : name];
// NSLog(@"%@",self.name); //self.name == [self name];
_name = name;
// return self.name; error!!! [self name]; (2)ERROR!!!
return _name;
}
++++++方法内部是不能用方法调用自己++++++
//- (void)sayHi{
// NSLog(@"小仓");
// [self sayHi];
if (self = [super init]) {
_name = name;
_sex = sex;
_age= age;
_height = height;
}
return self;
}
+ (id)girlWithGirlFriend : (NSString *)name sex : (NSString *)sex age : (NSInteger)age height : (CGFloat)height{
return [[Girl alloc]initWithGirlFriend:name sex:sex age:age height:height];
{
return [NSString stringWithFormat:@"%@-%@-%ld-%.2lf", _name,_sex,_age,_height];
NSLog(@"没有在Girl类中找到此key值");
}
- (id)valueForUndefinedKey:(NSString *)key{
return nil;
@interface Man : NSObject
{
NSString *_name;
}
@property(nonatomic,retain)Girl *girlFriend;
//@property (nonatomic,copy)NSString *name; //做例子实例变量
@property (nonatomic,assign)NSInteger age;
- (id)initWithName : (Girl *)girlFriend name : (NSString *)name age : (NSInteger)age;
+ (id)manWithName : (Girl *)girlFriend name : (NSString *)name age : (NSInteger)age;
#import "Girl.h"
if (self = [super init]) {
_girlFriend = girlFriend;
_age = age;
_name = name;
}
return self;
return [[Man alloc]initWithName:girlFriend name:name age:age];
}
- (NSString *)description
{
return [NSString stringWithFormat:@"%@-%@-%ld", _girlFriend,_name,_age];
NSLog(@"哈哈,没有找到对应key值");
}
return nil;
}
[man setValue:g forKey:@"girlFriend"];
//通过KVC把棉花打印出来
NSLog(@"%@",[[man valueForKey:@"girlFriend"]valueForKey:@"name"]);
//KVC通过路径赋值取值(即使没有是实现setter 和 getter 方法也可以通过KVC赋值和取值)
[man setValue:@"棉花糖" forKeyPath:@"girlFriend.name"];
NSLog(@"%@",[[man valueForKey:@"girlFriend"]valueForKey:@"name"]);
Property属性,amp;nbsp;KVC键值编码OC…相关推荐
- python取出字典的某个键_python 取出字典的键或者值/如何删除一个字典的键值对/如何遍历字典...
先定义一个字典并直接进行初始化赋值 my_dict = dict(name="lowman", age=45, money=998, hourse=None) 1.取出该字典所有的 ...
- C#中使用键值对存取值并使用Linq通过key获取value
场景 有时候需要往数据库中存取数据比如 1,2,3 但是取出来后可能需要对应的中文. 首先新建全局变量类Global,然后声明全局字段来存取键值对. Dictionary<string, str ...
- 表单form数据默认以键值对的形式将数据回发到服务器,回发非纯文本需使用enctype=multipart/form-data方式编码为整条消息...
表单使用encrype=application/x-www-form-urlencoded时,各控件数据会以键值对的形式发到服务器,如果表单数据不是文本,这种编码就不能满足需要. 使用enctype= ...
- 如何解析属性文件(properties)获取键值对的值?
文章目录 创建属性文件 解析属性文件获取数据 使用类加载器 使用 File 对象 创建属性文件 新建 db-oracle.properties , 存放项目必须使用到的参数: driver = ora ...
- php 获取js对象的属性值,js获取对象,数组所有属性键值(key)和对应值(value)的方法示例...
本文实例讲述了js获取对象,数组所有属性键值(key)和对应值(value)的方法.分享给大家供大家参考,具体如下: var values=function(object) { var values ...
- jquery 获取键值对中最大值_jquery属性的操作
HTML示例代码: 第一个标题 家用电器分类 家用电器价格 11 男: 女: 第一行 第二行 第三行 第四行 第二个标题 第一段 第二段 属性: attr(n|k,v|p|f):设置或返回被选属性的值 ...
- es6 对象中是否有键值_js/es6判断对象是否为空,并判断对象是否包含某个属性...
js判断对象为空以及有好几种方法了,但是个人觉得不是特别方便. 比如: 1.把对象通过 JSON.stringify 转为字符串,再判断字符串是否等于 " {} " 2.for i ...
- 删除对象键值_JavaScript的解构技巧:排除对象属性、避免命名冲突、交换……...
全文共1583字,预计学习时长7分钟 图源:unsplash 解构是JavaScript中的一个强大工具.它可以从数组和对象中提取出有意义的变量,并用解构来处理JSON数据.嵌套对象或数组非常方便. ...
- 键值 keyCode事件属性
keyCode属性返回onkeypress事件触发的键值的字符代码,或onkeydown/onkeyup的键的代码. 两种代码类型的区别是: 字符代码 - 表示 ASCII 字符的数字 键盘代码 - ...
最新文章
- leetcode 225 用队列实现栈(JS)
- 根据工作年限预测工资python代码实现
- VSCODE修改文字编码格式为GB2312和TAB键为2个空格(MDK5和VSCODE联合开发STM32程序)
- 计算机应用基础(高起专)答案,东北师范大学14秋《计算机应用基础(高起专)》14秋在线作业1答案...
- 大型网站HTTPS实践:HTTPS对性能的影响
- Java基础入门笔记-算术运算符
- 内推 | 旷视研究院深度学习实习生招聘(含内推邮箱)
- 牛客多校第六场G Is Today Friday?(吉姆拉尔森/蔡勒公式 + 思维)题解
- SQL Server 本机 Web 服务的使用方案(转载)
- Unity 资源断舍离(资源清理重复以及引用被引用查找)
- 2021-03-19Windows取消禁止驱动签名的方法
- Java 中代码优化的 30 个小技巧(下)
- 人类简史 - ZhiMap思维导图 (转载)
- -----前端换肤----
- 关于idea的debug调试
- 1166 - Unknown error 1166[mysql 错误
- 1016: 银行利率 Python
- 华为网吧服务器型号,网吧服务器推荐
- Vue进阶(幺零二):面试必备:2023 Vue经典面试题整理(含答案)
- Java项目:SSM药品进货销售管理系统
热门文章
- [CF917D]Stranger Trees[矩阵树定理+解线性方程组]
- Codeforces 468C/469E 易错点
- 移动測试技术保护源码!解码全球首款移动端白盒測试工具ThreadingTest (文章转自己主动点科技)...
- 详解在Visual Studio中使用git版本系统
- 《C#高级编程》 读书心得1--核心C# 几点你可能没注意,但很基础的小东西。
- CEMAPI实战攻略(四)——发送短消息
- 对产品经理而言,有一种灾难叫“老板说”
- 猎豹产品经理:「全球化产品」应该要避开的几个坑
- 福利|PMCAFF问答专家群-社区大咖聚集地
- centos7安装配置cacti