首页 > 其他 > 详细

[学习笔记]@property属性和点语法

时间:2014-04-04 10:15:47      阅读:548      评论:0      收藏:0      [点我收藏+]

温故而知新

昨天晚上学习OC里的类的声明,属性声明,属性的设置器、访问器以及@property属性和点语法。今天就来测试一下

1.新建类文件

 在oc里面新建类文件,会新建出来两个文件。比如新建Person类,则会出现两个文件:“person.h”、"person.m"。

 其中,类的属性和方法的声明会放在"person.h"里面, 类的方法的实现会放在"person.m"文件里面。

 

2.在person类中新建两个属性

 -在person.h中声明两个属性name 、age。其中name会使用传统设置器和访问器,而age会使用@property和点语法。

 

bubuko.com,布布扣
//
//  Person.h
//  HelloWorld
//
//  Created by lengxuan on 14-4-3.
//  Copyright (c) 2014年 lengxuan. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface Person : NSObject{
    NSString *name;
    int age;
}
//设置器和访问器
-(void) setName:(NSString *) _name;
-(NSString *) getName;

//@perperty 属性
@property(nonatomic) int age;

/*在@property() 括号中,可以填写的属性:
 * readwrite: 默认,可读可写
 * readonly: 只读
 * assign: 默认,引用计数器不增加
 * retain: 引用计数器加1
 * automic: 默认,原子性,指的是在执行该标记标识的方法时,不会被另外的线程打断
 * nonatomic: 非原子性
 */
@end
bubuko.com,布布扣

 

 

 

- 在person.m文件中,我们将对name的设置器和访问器进行实现和@property属性的实现

bubuko.com,布布扣
//
//  Person.m
//  HelloWorld
//
//  Created by lengxuan on 14-4-3.
//  Copyright (c) 2014年 lengxuan. All rights reserved.
//

#import "Person.h"

@implementation Person
//@property属性的实现,使用此标识,在编译时自动形成相应的设置器和访问器
@synthesize age;

//设置器
-(void) setName:(NSString *) _name{
    name = _name;
}

//访问器
-(NSString *) getName{
    return name;
}

@end
bubuko.com,布布扣

 

3.  调用Person类

在需要调用Person的文件里,需要导入Person.h头文件。

 

bubuko.com,布布扣
//
//  AppDelegate.m
//  HelloWorld
//
//  Created by lengxuan on 14-3-17.
//  Copyright (c) 2014年 lengxuan. All rights reserved.
//

#import "AppDelegate.h"
//引用Person.h #import "Person.h" @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; // Override point for customization after application launch. self.window.backgroundColor = [UIColor whiteColor]; [self.window makeKeyAndVisible]; //声明person实例,init用来初始化。其实我们并没有写Person的无参构造函数,很明显这是编译器自动生成的调用父类的无参构造函数 Person *person = [[Person alloc] init]; //传统的设置器和访问器 [person setName:@"Tom"]; NSLog(@"person‘s name is %@",[person getName]); //@property属性和点语法 person.age = 20; NSLog(@"person‘s age is %d", person.age); //好像在以前的版本中还要释放该对象内存,5.0.2版本貌似是ARC自动释放内存。真省心 //[person release];
}
bubuko.com,布布扣

 

 

 

 

[学习笔记]@property属性和点语法,布布扣,bubuko.com

[学习笔记]@property属性和点语法

原文:http://www.cnblogs.com/lengxuanfei/p/3644120.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!