文档章节

OC高效率52之使用“class-continuation分类”隐藏实现细节

阿元
 阿元
发布于 2016/03/02 23:07
字数 195
阅读 31
收藏 0
#import <Foundation/Foundation.h>

@interface EOCPerson : NSObject
@property (nonatomic , copy , readonly) NSString *firstName;
@property (nonatomic , copy , readonly) NSString *lastName;
-(id)initWithFirstName:(NSString *)firstName lastName:(NSString *)lastName;
@end


//continuation n. 继续;续集;延长;附加部分
/**
 *  class-continuation  
 *  唯一能声明实例变量的分类
 *  此分类没有特定的实现文件,其中的方法都应该定义在类的主实现文件里
 *  处理与C++混编时,隐藏C++文件
 *  扩充属性,封装在类中的数据就由实例本身来控制,而外部代码则无法修改其值
 *  视为私有的协议也应该写在class-continuation类里
 */
#import "EOCPerson.h"
@interface EOCPerson ()//<EOCSecretDelegate>
{
    NSString *_anInstanceVariable;
}
@property (nonatomic , copy , readwrite)NSString *firstName;
@property (nonatomic , copy , readwrite)NSString *lastName;
-(void)p_privateMethod;
@end

@implementation EOCPerson
-(id)initWithFirstName:(NSString *)firstName lastName:(NSString *)lastName{
    return nil;
}
-(void)p_privateMethod{
    
}
@end


© 著作权归作者所有

共有 人打赏支持
阿元
粉丝 5
博文 160
码字总数 105814
作品 0
浦东
程序员
编写高质量iOS与OS X代码的52个有效方法(上篇)

第一章 熟悉Objective-C 1. 了解Objective-C语言的起源 Objective-C(以下简称OC)是C语言的超集,相比C语言多了面向对象的特性。OC使用动态绑定的消息结构,换句话说,只有在运行时才会检查...

还是不够辣
2017/04/06
0
0
iOS OC 避免在分类中声明属性

一 描述 尽管从技术上来说,分类里可以声明属性,但是这种做法还是要尽量避免,原因在于,除了 class-continuation 分类(延展)之外,其他分类都无法向类中新增实例变量,因此,他们无法把实...

卧龙小
2015/07/12
0
0
OC语言中容易忽略却必须知道的二三事,日常整理~不断补充中···

1.最熟悉的陌生人 ①超类:即父类 ②向前声明 :@class ③(1)实例变量:定义在类中但在任何方法之外。 点语法的实质:调用set和get方法 懒加载中不能使用点语法:懒加载本身是在get方法中实...

JoshSone
2016/11/12
3
0
《Effective Objective-C 2.0》读书笔记

思维导图.png 前言 好长时间没有更新了,年后把《Effective Objective-C 2.0》这本书看完了,上面👆是用思维导图画出来的整本书的内容。下面把书中一些重要的和难理解的知识点整理一下,不...

_誌念
03/25
0
0
《Effective Objective-C 2.0:编写高质量iOS与OS X代码的52个有效方法》阅读笔记

前言:第一次阅读此书大概是是一年半之前,在网上找到电子版,也就临时看了一晚上,之后就没有再涉猎。八月份决定抽出半个月左右的时间认真阅读下这本书(但是由于这两周一直在准备公司项目的...

Samson_Xu
2017/09/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

现场看路演了!

HiBlock
3分钟前
0
0
Rabbit MQ基本概念介绍

RabbitMQ介绍 • RabbitMQ是一个消息中间件,是一个很好用的消息队列框架。 • ConnectionFactory、Connection、Channel都是RabbitMQ对外提供的API中最基本的对象。Connection是RabbitMQ的s...

寰宇01
20分钟前
1
0
官方精简版Windows10:微软自己都看不过去了

微软宣布,该公司正在寻求解决方案,以减轻企业客户的Windows 10规模。该公司声称,企业客户下载整个Windows 10文件以更新设备既费钱又费时。 微软宣布,该公司正在寻求解决方案,以减轻企业...

linux-tao
24分钟前
0
0
TypeScript基础入门之JSX(二)

转发 TypeScript基础入门之JSX(二) 属性类型检查 键入检查属性的第一步是确定元素属性类型。 内在元素和基于价值的元素之间略有不同。 对于内部元素,它是JSX.IntrinsicElements上的属性类型...

durban
今天
1
0
AVA中CAS-ABA的问题解决方案AtomicStampedReference

了解CAS(Compare-And-Swap) CAS即对比交换,它在保证数据原子性的前提下尽可能的减少了锁的使用,很多编程语言或者系统实现上都大量的使用了CAS。 JAVA中CAS的实现 JAVA中的cas主要使用的是...

码代码的小司机
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部