首页 > 其他 > 详细

属性修饰词

时间:2014-10-06 22:31:40      阅读:266      评论:0      收藏:0      [点我收藏+]

接口文件1:Animal.h

#import <Foundation/Foundation.h>
#import "Cat.h"

@interface Animal : NSObject
{
//    NSString *_color;
//    NSString *_name;
    Cat *_cat;
}
@property (nonatomic,assign,readwrite) NSString *color,*name;
@property (nonatomic,retain,readwrite) Cat *cat;
- (instancetype) init;
- (void) run;
- (void) dealloc;

@end

实现文件1:Animal.m

#import "Animal.h"

@implementation Animal
- (instancetype) init
{
    if ([super init])
    {
        _color = @"";
        _name = @"";
    }
    return self;
}
- (void) run
{
    NSLog(@"%s",__PRETTY_FUNCTION__);
}
- (void) dealloc
{
    [_cat release];
    [super dealloc];
}

@end

 

接口文件2:Dog.h

#import "Animal.h"

@interface Dog : Animal
{
    int _age;
}
@property (nonatomic,assign) int age;
- (void) bark;
- (void) dealloc;

@end



实现文件2:Dog.m

#import "Dog.h"

@implementation Dog
- (void) bark
{
    NSLog(@"汪汪!");
}
- (void) dealloc
{
    [super dealloc];
}

@end

 

接口文件3:Cat.h

#import <Foundation/Foundation.h>

@interface Cat : NSObject
{
@private
    int weight;
}
- (void) jump;
- (void) dealloc;

@end

 

实现文件3:Cat.m

#import "Cat.h"

@implementation Cat
- (void) jump
{
    NSLog(@"%s",__PRETTY_FUNCTION__);
}
- (void) dealloc
{
    [super dealloc];
}

@end

 

测试文件:main.m

#import <UIKit/UIKit.h>
#import "AppDelegate.h"
#import "Dog.h"

int main(int argc, char * argv[]) {
    @autoreleasepool {
        Animal *animal = [[Animal alloc] init];
        Dog *dog = [[Dog alloc] init];
        Cat *cat = [[Cat alloc] init];
        Cat *cat1 = [[Cat alloc] init];
        [cat1 autorelease];
        
        NSLog(@"%lu",[animal retainCount]);
        NSLog(@"%lu",[dog retainCount]);
        NSLog(@"%lu",[cat retainCount]);
        NSLog(@"%lu",[cat1 retainCount]);
        
        animal.cat = cat;
        dog.cat = cat;
        
        NSLog(@"%lu",[animal retainCount]);
        NSLog(@"%lu",[dog retainCount]);
        NSLog(@"%lu",[cat retainCount]);
        NSLog(@"%lu",[cat1 retainCount]);
        
        [animal release];
        NSLog(@"%lu",[animal retainCount]);
        [dog release];
        NSLog(@"%lu",[dog retainCount]);
        [cat release];
        NSLog(@"%lu",[cat retainCount]);
        NSLog(@"%lu",[cat1 retainCount]);
        
    }
    return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}

属性修饰词

原文:http://www.cnblogs.com/jiuchabaikaishui/p/4008754.html

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