YIem`s Blog -心比天高命比纸薄-链接找不到的请在站内搜索内容!

2015-12-04// OC_9 类的扩展

//
// main.m
// OC_9 类的扩展
//
// Created by YIem on 15/12/4.
// Copyright (c) 2015年 www.yiem.net YIem博客. All rights reserved.
//

import <Foundation/Foundation.h>

import "Gril.h"

import "NSString+SayHi.h"

import "Man.h"

int main(int argc, const char * argv[]) {

@autoreleasepool {
    
   // 创建对象
    Gril *bg = [ Gril grilWithYanzhi:@"漂亮" tui:@"大长腿"];
    // 类中方法
    [bg zipai];
    // 类目方法
    [bg findBoyFriend];
    
    // 创建字符串
    NSString *str = @"随便";
    //调用字符串类目方法
    [str sayHi];
    
    
    /**
     * 类目的作用 扩展
     * 1.给系统的类(没有源代码的类/没有.m文件的类)添加新的方法
     * 2.任何一个类都可以添加类目
     * 3.使用类目名 划分方法种类
     */
/*-----------------<<<<<.0.>>>>>-------------*/
    /**
     * 类目的特点
     * 1.有一对.h和.m文件
     * 2.可以写在类的后面 或者 新建文件(类名 + 类目名)
     * 3.类目中的方法相当于添加在原类中 可以使用任意的成员变量和方法
     * 4.类目在不能添加成员变量 只能添加方法
     * 5.类目在的方法优先级更高 如果和原类方法重名 回覆盖原方法(尽量避免重名)
     **/
    


  // 创建对象
    Man *dawa = [[Man alloc] init];
    [dawa shuangFangLianJie];
    
    
    
    
}
return 0;

}



//
// Gril.h
// OC_9 类的扩展
//
// Created by YIem on 15/12/4.
// Copyright (c) 2015年 www.yiem.net YIem博客. All rights reserved.
//

import <Foundation/Foundation.h>

@interface Gril : NSObject
@property (nonatomic, copy)
NSString *yanzhi;
@property (nonatomic, copy)
NSString *tui;
// 自定义初始化

@end
// 类目 / 类别/ 分类 Category
// 关键字 类名 (类目名)
@interface Gril (BF)

// 类目中不能添加成员变量 只能添加方法


//
// Gril.m
// OC_9 类的扩展
//
// Created by YIem on 15/12/4.
// Copyright (c) 2015年 www.yiem.net YIem博客. All rights reserved.
//

import "Gril.h"

// 延展/扩展 Extension
// 作用: 私有声明 管理私有的内容
// 关键字 类名 ()
@interface Gril ()
@property (nonatomic, copy)
NSString *name;
// 私有方法 -> 没有在.h声明的方法 称为私有方法
// 私有方法可以在延展中声明,或者不声明
// 如果声明 可以统一管理所有的私有方法

@end
@implementation Gril

pragma mark - dealloc

pragma mark - 自定义初始化

pragma mark - 遍历构造器

pragma mark - 普通方法

// 扩展/延展

@end

// 类目的实现
@implementation Gril (BF)

// 类目中方法优先级高于原类方法
// 当方法重名时 回覆盖原类方法

@end



//
// FruitDelegate.h
// OC_9 类的扩展
//
// Created by YIem on 15/12/4.
// Copyright (c) 2015年 www.yiem.net YIem博客. All rights reserved.
//

import <Foundation/Foundation.h>

// 正式协议
// 声明若干个方法(一套标准)
// 关键字 协议名 根协议
@protocol FruitDelegate <NSObject>
// 协议类型修饰
// 必须的 表示必须实现的方法 加required
@required
// 有价值

@optional
// 使人愉悦



//
// Liulain.h
// OC_9 类的扩展
//
// Created by YIem on 15/12/4.
// Copyright (c) 2015年 www.yiem.net YIem博客. All rights reserved.
//

import <Foundation/Foundation.h>

import "FruitDelegate.h"

// 签订协议 -> 具有了协议中的方法的声明
@interface Liulain : NSObject <FruitDelegate>

@end


//
// Liulain.m
// OC_9 类的扩展
//
// Created by YIem on 15/12/4.
// Copyright (c) 2015年 www.yiem.net YIem博客. All rights reserved.
//

import "Liulain.h"

@implementation Liulain

@end



//
// Money.h
// OC_9 类的扩展
//
// Created by YIem on 15/12/4.
// Copyright (c) 2015年 www.yiem.net YIem博客. All rights reserved.
//

import <Foundation/Foundation.h>

import "FruitDelegate.h"

@interface Money : NSObject<FruitDelegate>

@end


//
// Money.m
// OC_9 类的扩展
//
// Created by YIem on 15/12/4.
// Copyright (c) 2015年 www.yiem.net YIem博客. All rights reserved.
//

import "Money.h"

@implementation Money

@end



//
// Man.h
// OC_9 类的扩展
//
// Created by YIem on 15/12/4.
// Copyright (c) 2015年 www.yiem.net YIem博客. All rights reserved.
//

import <Foundation/Foundation.h>

import "Woman.h"

warning 代理模式4. 签订协议

@interface Man : NSObject <MarriageDelegate>


//
// Man.m
// OC_9 类的扩展
//
// Created by YIem on 15/12/4.
// Copyright (c) 2015年 www.yiem.net YIem博客. All rights reserved.
//

import "Man.h"

@implementation Man

warning 代理模式5. 设置代理人

shejing.delegate = self;
[shejing buybuybuy];

}

warning 代理模式6. 实现协议中声明的方法

@end



//
// Woman.h
// OC_9 类的扩展
//
// Created by YIem on 15/12/4.
// Copyright (c) 2015年 www.yiem.net YIem博客. All rights reserved.
//

import <Foundation/Foundation.h>

warning 代理模式1. 声明协议

// 非正式协议
@protocol MarriageDelegate <NSObject>
// 必须
@required
// 挣钱

@optional

@end

@interface Woman : NSObject

warning 代理模式2. 设置代理人属性

// 给签订协议的对象 设置一个角色 未婚夫
@property (nonatomic, assign) id <MarriageDelegate> delegate;


//
// Woman.m
// OC_9 类的扩展
//
// Created by YIem on 15/12/4.
// Copyright (c) 2015年 www.yiem.net YIem博客. All rights reserved.
//

import "Woman.h"

@implementation Woman
-(void)buybuybuy
{

warning 代理模式3. 让代理人调用协议方法

// 让未婚夫挣钱 自己买买买
[self.delegate makeMoney];
NSLog(@"买买买");

}
@end



//
// NSString+SayHi.h
// OC_9 类的扩展
//
// Created by YIem on 15/12/4.
// Copyright (c) 2015年 www.yiem.net YIem博客. All rights reserved.
//

import <Foundation/Foundation.h>

@interface NSString (SayHi)

@end


//
// NSString+SayHi.m
// OC_9 类的扩展
//
// Created by YIem on 15/12/4.
// Copyright (c) 2015年 www.yiem.net YIem博客. All rights reserved.
//

import "NSString+SayHi.h"

@implementation NSString (SayHi)

@end

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »