@fiy-fish
2015-07-18T20:23:51.000000Z
字数 1379
阅读 1280
Objective-c
// main.m
// 属性
//
// Created by Aaron on 15/7/9.
// Copyright (c) 2015年 Aaron. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "Dog.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
Dog *dog = [[Dog alloc] init];
dog.name = @"小白";
NSLog(@"%@",dog.name);
NSLog(@"%@",[dog readName]);
[dog writeName:@"小黑"];
NSLog(@"%@",dog.name);
[dog setMyTemp:100];
dog.temp = 1000;
NSLog(@"%ld",[dog temp]);
// int temp = 100;
// while(1)
// {
// temp+=10;
//
//
// NSLog(@"%d",temp);
// }
//
//
// while(1)
// {
// temp = 10000;
// }
}
return 0;
}
#import <Foundation/Foundation.h>
@interface Dog : NSObject
//{
// NSString *_name;
//}
//-(void)setName:(NSString *)name;
//-(NSString *)name;
@property (nonatomic,copy) NSString *name;
//property 只干一件事 就是声明setter getter接口
-(void)writeName:(NSString *)name;
-(NSString *)readName;
//考虑线程安全
//nonatomic 非原子性(不考虑线程安全)
//atomic 原子性(考虑线程安全)
//copy 拷贝 只要是字符串都用copy
//retain 只要是对象都用retain
//assign 基本类型的数据都用assign
//还可以自己指定setter getter接口的写法
@property (nonatomic,assign,readwrite,setter=setMyTemp:) NSInteger temp;
//readwrite 产生两个接口(默认的缺省的值)
//readonly 产生一个getter接口
@end
#import "Dog.h"
@implementation Dog
{
NSInteger _i;
}
//@synthesize name;
//@synthesize 现在可以不用写,系统在编译时会自动添加
//实现setter getter方法
//没有手动实现synthesize 会找带_的属性,如果有,就直接使用,如果没有,就创建一个带_的属性
//-(void)setName:(NSString *)name
//{
// if(_name != name)
// {
// _name = name;
// }
//}
//
//-(NSString *)name
//{
// return _name;
//}
-(void)writeName:(NSString *)name
{
_name = name;
}
-(NSString *)readName
{
return _name;
}
@end