[关闭]
@fiy-fish 2015-07-18T20:23:51.000000Z 字数 1379 阅读 1280

day07-02-属性

Objective-c


  1. // main.m
  2. // 属性
  3. //
  4. // Created by Aaron on 15/7/9.
  5. // Copyright (c) 2015年 Aaron. All rights reserved.
  6. //
  7. #import <Foundation/Foundation.h>
  8. #import "Dog.h"
  9. int main(int argc, const char * argv[]) {
  10. @autoreleasepool {
  11. Dog *dog = [[Dog alloc] init];
  12. dog.name = @"小白";
  13. NSLog(@"%@",dog.name);
  14. NSLog(@"%@",[dog readName]);
  15. [dog writeName:@"小黑"];
  16. NSLog(@"%@",dog.name);
  17. [dog setMyTemp:100];
  18. dog.temp = 1000;
  19. NSLog(@"%ld",[dog temp]);
  20. // int temp = 100;
  21. // while(1)
  22. // {
  23. // temp+=10;
  24. //
  25. //
  26. // NSLog(@"%d",temp);
  27. // }
  28. //
  29. //
  30. // while(1)
  31. // {
  32. // temp = 10000;
  33. // }
  34. }
  35. return 0;
  36. }

  1. #import <Foundation/Foundation.h>
  2. @interface Dog : NSObject
  3. //{
  4. // NSString *_name;
  5. //}
  6. //-(void)setName:(NSString *)name;
  7. //-(NSString *)name;
  8. @property (nonatomic,copy) NSString *name;
  9. //property 只干一件事 就是声明setter getter接口
  10. -(void)writeName:(NSString *)name;
  11. -(NSString *)readName;
  12. //考虑线程安全
  13. //nonatomic 非原子性(不考虑线程安全)
  14. //atomic 原子性(考虑线程安全)
  15. //copy 拷贝 只要是字符串都用copy
  16. //retain 只要是对象都用retain
  17. //assign 基本类型的数据都用assign
  18. //还可以自己指定setter getter接口的写法
  19. @property (nonatomic,assign,readwrite,setter=setMyTemp:) NSInteger temp;
  20. //readwrite 产生两个接口(默认的缺省的值)
  21. //readonly 产生一个getter接口
  22. @end

  1. #import "Dog.h"
  2. @implementation Dog
  3. {
  4. NSInteger _i;
  5. }
  6. //@synthesize name;
  7. //@synthesize 现在可以不用写,系统在编译时会自动添加
  8. //实现setter getter方法
  9. //没有手动实现synthesize 会找带_的属性,如果有,就直接使用,如果没有,就创建一个带_的属性
  10. //-(void)setName:(NSString *)name
  11. //{
  12. // if(_name != name)
  13. // {
  14. // _name = name;
  15. // }
  16. //}
  17. //
  18. //-(NSString *)name
  19. //{
  20. // return _name;
  21. //}
  22. -(void)writeName:(NSString *)name
  23. {
  24. _name = name;
  25. }
  26. -(NSString *)readName
  27. {
  28. return _name;
  29. }
  30. @end
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注