OC利用类别对类进行模块化设计和使用类别来调用私有方法

来源:互联网 发布:怎么下载word2010软件 编辑:程序博客网 时间:2024/05/29 14:30

//

//  main.m

//  OC利用类别对类进行模块化设计

//  OC使用类来调用私有方法

//

//  Created by Goddog on 15/1/10.

//  Copyright (c) 2015 Goddog. All rights reserved.

//

/*

1.我们使用.h文件来定义类的接口部分,使用.m文件定义类的实现部分,将类模块化设计就可以将类的实现按模块分布到不同.m文件中

2.没有在接口部分定义而是在类实现部分定义的方法相当于私有方法,通常不允许被调用,

  但是使用NSObjectperformSelector:方法来执行动态调用,完全可以调用那些私有方法,

  但我们通过类别来定义前向引用,从而实现对私有方法的调用。

 */

////  Girl.h//  OC利用类别对类进行模块化设计////  Created by Goddog on 15/1/10.//  Copyright (c) 2015年 Goddog. All rights reserved.//#import <Foundation/Foundation.h>@interface Girl : NSObject@property (nonatomic,assign) double count;-(void) info;@end

////  Girl.m//  OC利用类别对类进行模块化设计////  Created by Goddog on 15/1/10.//  Copyright (c) 2015年 Goddog. All rights reserved.//#import "Girl.h"@implementation Girl@synthesize count = _count;//实现接口部分定义的方法-(void) info{    NSLog(@"最是那一低头的温柔");}//在接口部分未定义到方法-(double) countTeam:(double) team{    return self.count * team;}@end

#import <Foundation/Foundation.h>#import "Girl.h"//用类别来实现对私有方法的调用@interface Girl (Man)//在类别中声明countTeam方法-(double) countTeam:(double) team;@endint main(int argc, const char * argv[]) {    @autoreleasepool {        Girl* girl = [[Girl alloc] init];        girl.count = 7;        [girl info];        NSLog(@"多少温柔:%g",[girl countTeam:2]);//如果没有类别根本就直接不能调用    }    return 0;}


0 0
原创粉丝点击