oc27--synthesize,省略getset实现
2024-08-31 04:08:24
//
// Person.h #import <Foundation/Foundation.h> @interface Person : NSObject
{
@public
int _age;
int age;
int _number;
} /*
@porperty是一个编译器指令
在Xocde4.4之前, 可以使用@porperty来代替getter/setter方法的声明
也就是说我们只需要写上@porperty就不用写getter/setter方法的声明 编译器只要看到@property, 就知道我们要生产某一个属性的getter/setter方法的声明
- (void)setAge:(int)age;
- (int)age;
*/
@property int age; //就可以使用 [p setAge:88];
@end
//
// Person.m #import "Person.h" @implementation Person
/*
@synthesize是一个编译器指令, 它可以简化我们getter/setter方法的实现*/ @synthesize age = _age; // 赋值给_age
/*
- (void)setAge:(int)age
{
_age = age;
}
- (int)age
{
return _age;
}
*/ /*@synthesize age = _number; 赋值给_number
- (void)setAge:(int)age
{
_number = age;
}
- (int)age
{
return _number
;
}
*/ // 如果在@synthesize后面没有告诉系统将传入的值赋值给谁, 系统默认会赋值给和@synthesize后面写得名称相同的成员变量
/*
// _age? age : age
@synthesize age; //就可以使用 [p setAge:88]; - (void)setAge:(int)age
{
_age = age;
}
- (int)age
{
return _age;
}
*/
@end
//
// main.m
// synthesize基本使用
//
// Created by xiaomage on 15/6/23.
// Copyright (c) 2015年 xiaomage. All rights reserved.
// #import <Foundation/Foundation.h>
#import "Person.h" int main(int argc, const char * argv[]) {
Person *p = [Person new];
[p setAge:];
NSLog(@"age = %i , p->_age = %i", [p age], p->_age);
NSLog(@"_age = %i, _number = %i", p->_age, p->_number);
NSLog(@"_age = %i, age = %i", p->_age, p->age); return ;
}
最新文章
- MarkDown 语法
- ifconfig
- echarts -01 入门
- linux命令(4):top 命令(性能分析工具)
- iOS中touches事件,addtarget ...action和GestureRecognizer详解
- 添加数据时候获取自增的ID
- Cannot load JDBC driver class &#39;oracle.jdbc.driver.OracleDriver&#39;
- String, StringBuffer, StringBuilder比较
- hdu 1466 计算直线的交点数
- python request模块学习
- Bundle压缩JS和CSS
- Java面试01|JVM相关
- 【转载】Sublime Text 3065 Keygen and Patcher
- asm添加删除磁盘
- Typescript变量声明
- redis.exceptions.ConnectionError: Error 111 connecting to localhost:6379. Connection refused.
- 【转】iOS 音频-AVAudioSession
- 自学Linux Shell12.2-test命令
- Vue.js——component(组件)
- 洛谷P1216 数字三角形【dp】