文档章节

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

阿元
 阿元
发布于 2016/03/02 23:07
字数 195
阅读 35
收藏 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
博文 163
码字总数 108443
作品 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

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周六乱弹 —— 你一口我一口多咬一口是小狗

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @达尔文 :分享Roy Orbison的单曲《She's a Mystery to Me》 《She's a Mystery to Me》- Roy Orbison 手机党少年们想听歌,请使劲儿戳(这里...

小小编辑
今天
93
4
Spring源码学习笔记-1-Resource

打算补下基础,学习下Spring源码,参考书籍是《Spring源码深度解析》,使用版本是Spring 3.2.x,本来想试图用脑图记录的,发现代码部分不好贴,还是作罢,这里只大略记录下想法,不写太细了 ...

zypy333
今天
12
0
RestClientUtil和ConfigRestClientUtil区别说明

RestClientUtil directly executes the DSL defined in the code. ConfigRestClientUtil gets the DSL defined in the configuration file by the DSL name and executes it. RestClientUtil......

bboss
今天
21
0

中国龙-扬科
昨天
4
0
Linux系统设置全局的默认网络代理

更改全局配置文件/etc/profile all_proxy="all_proxy=socks://rahowviahva.ml:80/"ftp_proxy="ftp_proxy=http://rahowviahva.ml:80/"http_proxy="http_proxy=http://rahowviahva.ml:80/"......

临江仙卜算子
昨天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部