oc-25- @property @synthesize
s.h #import <Foundation/Foundation.h> @interface Student : NSObject
{
@public
NSString *_name;
int _age;
int _height;
} // @property能够自动生成set和get方法的 声明
// @property 成员变量类型 成员变量名称(去掉下划线);
//- (void)setName:(NSString *)name;
//- (NSString *)name;
@property NSString *name;
@end s.m /**
问题:想要给自己不带下划线的成员变量进行赋值,怎么办?> 需要给@synthesize指定,告诉该赋值给谁.
@synthesize name = _name;
它就知道,赋值_name;
*/ #import "Student.h" @implementation Student
@synthesize name;
//生成了getset方法的实现
//- (void)setName:(NSString *)name
//{
// name = name;
// NSLog(@"%p",name);
//}
//- (NSString *)name
//{
//
// return name;
//}
@end main.m #import <Foundation/Foundation.h>
#import "Student.h" int main(int argc, const char * argv[]) {
@autoreleasepool {
Student *s = [Student new];
s.name = @"亚索";
// 这步能够调用,证明@property生成了set和get方法的声明.
[s setName:@"亚索"];
// 证明@synthesize生成了set和get方法的实现.
NSLog(@"%p",s->name);
NSLog(@"-----");
}
return ;
}
@property增强使用
- Xcode4.4版本以后支持的
- 只使用 @property 进行声明,类自动帮你实现。
Xcode4.4以后property做了增强
- 帮助我们自动生成get/set方法的声明
- 帮助我们自动生成get/set方法的实现
s.h
/**
@property的加强用法:
1.生成set和get方法的声明
2.生成set和get方法的实现
3.生成带下划线的成员变量. 注意事项:
1. 当用户手动重写了set方法时,@property会生成get方法和带下划线的成员变量
2. 当用户手动重写了set和get方法时.@property不会生成待下划线的成员变量.
3. 当用户手动重写了get方法时,@property会生成set方法和带下划线的成员变量. */ #import <Foundation/Foundation.h>
#import "Person.h" @interface Student : Person @property NSString *name;//生成的变量名是_name, @property int age; @property int height; @property int weight; @end s.m #import "Student.h" @implementation Student //@synthesize age = _age,height = _height,weight = _weight,name = _name; //手动重写get方法
- (NSString *)name
{
return _name;
} - (instancetype)init
{
if (self = [super init]) {
NSLog(@"s---%@",self);
NSLog(@"s---%@",super.class);
}
return self;
}
@end
oc-25- @property @synthesize的更多相关文章
- OC语言@property @synthesize和id
OC语言@property @synthesize和id 一.@property @synthesize关键字 注意:这两个关键字是编译器特性,让xcode可以自动生成getter和setter的声明 ...
- 李洪强iOS开发之OC语言@property @synthesize和id
OC语言@property @synthesize和id 一.@property @synthesize关键字 注意:这两个关键字是编译器特性,让xcode可以自动生成getter和setter的声明 ...
- 「OC」@property @synthesize和id
一.@property @synthesize关键字 这两个关键字是编译器特性,让Xcode可以自动生成getter和setter. (一)@property 关键字 @property 关键字可以自 ...
- OC @property @synthesize和id
文顶顶 OC语言@property @synthesize和id OC语言@property @synthesize和id 一.@property @synthesize关键字 注意:这两个关键字 ...
- OC的@property 和 @synthesize id
学习java的JDBC,成员变量的setter和getter,eclipse都能帮我们自动生成:当然xcode这款编译器也很强大,也能自动生成: 1:@property @property是写在类的声 ...
- OC的特有语法-分类Category、 类的本质、description方法、SEL、NSLog输出增强、点语法、变量作用域、@property @synthesize关键字、Id、OC语言构造方法
一. 分类-Category 1. 基本用途:Category 分类是OC特有的语言,依赖于类. ➢ 如何在不改变原来类模型的前提下,给类扩充一些方法?有2种方式 ● 继承 ● 分类(Categor ...
- 五.OC基础--1.多态,2.类对象,3.点语法,4.@property&@synthesize,5.动态类型,内省(判断对象是否遵循特定的协议,以及是否可以响应特定的消息)
五.OC基础--1.多态, 1. 多态概念,定义:多态就是某一类事物的多种形态: 表现形式: Animal *ani = [Dog new]; 多态条件:1.有继承关系 2.有方法的重写 2.多态代码 ...
- OC中@property属性关键字的使用(assign/weak/strong/copy)
OC中@property属性关键字的使用(assign/weak/strong/copy) 一.assign 用于 ‘基本数据类型’.‘枚举’.‘结构体’ 等非OC对象类型 eg:int.bool等 ...
- OC基础--Property
编译器指令: 用来告诉编译器要做什么 @property: @property是编译器的指令 告诉编译器在@interface中自动生成setter和getter的声明 @synthesize: @s ...
- [OC笔记]@property之个人理解,大神轻拍
/** * 一个简单的对象 * * @author suzhen * */ public class SimpleObjcet { /** * 声明一个age字段 */ private Object ...
随机推荐
- 单源最短路径-Dijkstra算法
1.算法标签 贪心 2.算法描述 具体的算法描述网上有好多,我觉得莫过于直接wiki,只说明一些我之前比较迷惑的. 对于Dijkstra算法,最重要的是维护以下几个数据结构: 顶点集合S : 表示已经 ...
- [POJ] #1008# Maya Calendar : 字符处理/同余问题
一. 题目 Maya Calendar Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 74085 Accepted: 2 ...
- Linux下静态库生成和使用
Linux下静态库生成和使用 一.静态库概念 1.库是预编译的目标文件(object files)的集合,它们可以被链接进程序.静态库以后缀为”.a”的特殊的存档(archive file)存储. ...
- 总结调用Flash的几种方法
一.Adobe 提供的方法 <object width="200" height="200" classid="clsid:D27CDB6E-A ...
- dom 侧栏分享
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- 第三百三十天 how can I 坚持
今天是姥姥二周年,不是忘了,是根本就没不知道,没放在心上,正月十九,记下了,人这一辈子. 搞不懂,搞不懂那签. 锥地求泉,先难后易,顺其自然,偶遇知己,携手同行,是签文的关键,我逐个解释给你听.锥地求 ...
- java.lang.IllegalStateException: Cannot call sendError() after the response has been committed
http://blog.csdn.net/chenghui0317/article/details/9531171 —————————————————————————————————————————— ...
- find命令之exec
find是我们很常用的一个Linux命令,但是我们一般查找出来的并不仅仅是看看而已,还会有进一步的操作,这个时候exec的作用就显现出来了. exec解释: -exec 参数后面跟的是command ...
- UVaLive 6693 Flow Game (计算几何,线段相交)
题意:给个棋盘,你可以在棋盘的边缘处放2个蓝色棋子2个黄色棋子,问连接2组同色棋子的最小代价,如果线路交叉,输-1. 析:交叉么,可以把它们看成是两条线段,然后如果相交就是不行的,但是有几种特殊情况, ...
- C# 与 C++ 数据类型对照
C++ C#=====================================WORD ushortDWORD uintUCH ...