博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
类目 延展 单例 协议
阅读量:5369 次
发布时间:2019-06-15

本文共 2536 字,大约阅读时间需要 8 分钟。

//类目 #import 
//声明一个NSString的分栏@interface NSString (compareValue)- (NSComparisonResult)compareValue:(NSString *)string;@end----------------------------------#import "NSString+compareValue.h"@implementation NSString (compareValue)- (NSComparisonResult)compareValue:(NSString *)string{ if (self.integerValue > string.integerValue) { return NSOrderedDescending; } if (self.integerValue < string.integerValue) { return NSOrderedAscending; } return NSOrderedSame;}@end
#import 
@interface Student : NSObject@property (nonatomic, retain)NSMutableArray *studyInfo;//表示学习科+ (Student *)bestStudent;@end```````````````------------------/* 增加类目 已知 类 系统类 延展 写在m文件私有 可操作类 写在其他文件 封装 kvo/kvc*/#import "Student.h"@interface Student ()@property (nonatomic, assign)NSInteger score;- (NSInteger)compareScore:(Student *)other;@end@implementation Student+ (Student *)bestStudent;{ static Student *stu = nil; if (!stu) { stu = [[Student alloc]init]; stu.studyInfo = [NSMutableArray array]; } return stu;}//标准单例模式会将所有产生新对象导致释放值的方法重写- (NSInteger)compareScore:(Student *)other{ return self.score - other.score;}@end ------------------------------

#import <Foundation/Foundation.h>

 

 

 

@interface Person : NSObject

 

 

 

//应用里面的唯一用户 ,游戏里的主角

 

//唯一 、全局不释放、方便获取

 

 

 

//单例的获取方法

 

+ (Person *)heighestPerson;

 

 

 

@end

 

#import "Person.h"

 

#import "Student.h"

 

 

 

@interface Person ()//延展可操作类,提供私有化的方法和属性的申明

 

@property (assign, nonatomic)NSInteger age;

 

@end

 

 

 

@implementation Person

 

 

 

+ (Person *)heighestPerson{

 

 

 

    //建立静态对象,置为nil

 

    static Person *per = nil;

 

    

 

    if (!per) {//保证使用时初始化保证唯一,保证不释放

 

        

 

        per = [[Person alloc]init];//保证不释放

 

    }

 

    return per;

 

}

 

- (instancetype)init

 

{

 

    self = [super init];

 

    if (self) {

 

        

 

        NSArray *info = [Student bestStudent].studyInfo;

 

        NSLog(@"%@",info);

 

    }

 

    return self;

 

}

 

 

 

@end

 
////将特殊的属性和方法,放到独立的文件中,提高封装行//提供私有化处理和方便性#import "Person.h"@interface Person ()//延展,提供私有化的方法和属性的申明@property (assign, nonatomic)NSInteger age;@end
#import 
#import "Working.h"@interface Developer : NSObject
//支持协议,必须实现协议所规定的属性和方法//属性直接声明@property (nonatomic, assign)NSInteger salary;//方法不需要声明,只要实现@end---------------#import "Developer.h"@implementation Developer- (void)work{ NSLog(@"work");}@end---------------------#import
//协议//working协议,规定对象必须有salary(薪资标准)和work的能力@protocol Working
@property (nonatomic, assign)NSInteger salary;- (void)work;@end

 

转载于:https://www.cnblogs.com/myOcNote/p/4531513.html

你可能感兴趣的文章
程序员的自我修养-链接、装载与库-2 静态链接的过程
查看>>
优秀作业 http://note.youdao.com/noteshare?id=c3ab264c5be57ca81f7f34f16075af09&sub=0C38120BA0C447B386...
查看>>
Yii2 数据操作DAO
查看>>
SQL Server中的事务与锁
查看>>
《AngularJS高级程序设计》学习笔记
查看>>
Current State of Industry Mining and Construction One
查看>>
scp 从远程服务器上一下载文件
查看>>
Java的post请求-----接口测试
查看>>
转:电容的ESR是什么意思
查看>>
杭电1061 Rightmost Digit
查看>>
mvc 5 的过滤器和webapi 过滤器 对应实现的action过滤器区别
查看>>
but was actually of type [com.sun.proxy.$Proxy33]
查看>>
搭建事务管理转账案例的环境(强调:简化开发,以后DAO可以继承JdbcDaoSupport类)...
查看>>
github 与git 使用 及配置
查看>>
IIS配置支持跨域请求
查看>>
文件大小限制
查看>>
小程序云开发初试
查看>>
Redis在win7上的安装与可视化应用
查看>>
python爬虫scrapy之如何同时执行多个scrapy爬行任务
查看>>
给mysql root用户设置密码
查看>>