@property和@synthesize 用法

来源:互联网 发布:新闻联播软件 编辑:程序博客网 时间:2024/05/29 14:27

声明部分
@property:自动生成设值和取值方法
实现部分
@synthesize 指令:告诉编译器 为属性生成一对设值方法和取值方法

假如有一个x的属性,则通过@synthesize 会自动实现一个取值方法x,一个设值方法setX

@interface Fraction:NSObject@property int numerator,denominator;-(void) print;-(void) convertToNum;@end
 #import "Fraction.h"@implementation Fraction@synthesize numerator,denominator;-(void) print{ NSLog(@"%i/%i",numerator,denominator);}-(double) convertToNum{ if (denominator!=0) {  return (double) numerator/denominator; }else{  return NAN; }} 
int main(int argc, char const *argv[]){ @autoreleasepool{  Fraction *myFraction = [[Fraction alloc] init];  //访问变量  [myFraction numerator];  //或者  myFraction.numerator;  //设值  [myFraction setNumberator: 5];  //或者  myFraction.numerator = 5; } return 0;}

那么为什么要让编译器自动生成?而不自己手动生成?
因为编译器自动生成的存取方法是高效的,并且在使用多个核心的多台机器上,使用多线程时也可正常运行。

0 0
原创粉丝点击