OC高效率52:(二)类的头文件中尽量少引用其他头文件

//
//  EOCPerson.h
//  OC高效率52:类的头文件中尽量少引用其他头文件
//
//  Created by Zoujie on 15/10/8.
//  Copyright ? 2015年 Zoujie. All rights reserved.
//

#import <Foundation/Foundation.h>
//#import "EOCEmployer.h"
@class EOCEmployer;//向前申明该类,将引入头文件的时机尽量延后,只有确定需要时才引入;如果把EOCEmployer.h引入到EOCPerson.h,那么只要引入EOCPerson.h就会一并引入EOCEmployer.h的所有内容。向前声明也解决了两个类互相引用的问题

@interface EOCPerson : NSObject
@property (nonatomic,copy) NSString *firstName;
@property (nonatomic,copy) NSString *lastName;
#pragma mark -要点
/*
 * 除非确有必要,否则不要引入头文件。一般来说,应在某个类的头文件中使用向前声明来提及别的类,并在实现文件中引入哪些类的头文件。这样做可以尽量降低类之间的耦合。
 
 *有时无法使用向前声明,比如要声明某个类遵循一项协议。这种情况下,尽量把“该类遵循某协议”的这条声明移至“class-continuation分类中”。如果不行的话,就把协议单独放在一个头文件中,然后将其引入。
 
 */

@property (nonatomic,strong) EOCEmployer *employer;
@end
//
//  EOCPerson.m
//  OC高效率52:类的头文件中尽量少引用其他头文件
//
//  Created by Zoujie on 15/10/8.
//  Copyright ? 2015年 Zoujie. All rights reserved.
//

#import "EOCPerson.h"
#import "EOCEmployer.h"

@implementation EOCPerson

@end
//
//  EOCEmployer.h
//  OC高效率52:类的头文件中尽量少引用其他头文件
//
//  Created by Zoujie on 15/10/8.
//  Copyright ? 2015年 Zoujie. All rights reserved.
//

#import <Foundation/Foundation.h>
@class EOCPerson;
@interface EOCEmployer : NSObject

-(void) addEmployee:(EOCPerson *)person;
-(void) deleteEmployee:(EOCPerson *)person;
@end
//
//  EOCEmployer.m
//  OC高效率52:类的头文件中尽量少引用其他头文件
//
//  Created by Zoujie on 15/10/8.
//  Copyright ? 2015年 Zoujie. All rights reserved.
//

#import "EOCEmployer.h"
#import "EOCPerson.h"
@implementation EOCEmployer

@end
时间: 2024-12-24 22:29:02

OC高效率52:(二)类的头文件中尽量少引用其他头文件的相关文章

第2条:在类的头文件中尽量少引入其他头文件

@class (向前声明) #import 注意:如果在各自头文件中引入对方的头文件,则会导致“循环引用 ”. 虽然#import(而非#inculde指令)不会导致死循环,但却意味着两个类里有一个无法被正确编译.

在类的头文件中尽量少引入其他头文件 &lt;&lt;Effective Objective-C&gt;&gt;

与C 和C++ 一样,Objective-C 也使用"头文件"(header file) 与"实现文件"(implementation file)来区隔代码.用Objective-C 语言编写"类"(class)的标准方式为:以类名做文件名,分别创建两个文件,头文件后缀用.h,实现文件后缀用.m.创建好一个类之后,其代码看上去如下所示: // EOCPerson.h #import <Foundation/Foundation.h>

在类的头文件里尽量少引入其它头文件 &amp;lt;&amp;lt;Effective Objective-C&amp;gt;&amp;gt;

与C 和C++ 一样,Objective-C 也使用"头文件"(header file) 与"实现文件"(implementation file)来区隔代码.用Objective-C 语言编写"类"(class)的标准方式为:以类名做文件名称,分别创建两个文件,头文件后缀用.h,实现文件后缀用.m. 创建好一个类之后,其代码看上去例如以下所看到的: // EOCPerson.h #import <Foundation/Foundation.

OC高效率52之多用类型常量,少用#define预处理指令

// //  ViewController.m //  OC高效率52之多用类型常量,少用#define预处理指令 /**  *     1. 不要用预处理定义常量.这样定义出来的常量不含类型信息,编译器只是会在编译前据此执行查找与替换操作.即时有人重新定义了常量值,编译器也不会产生警告信息,这将导致应用程序中得常量值不一致.        2.在实现文件中使用static const 来定义"只在编译单元内可见的常量".由于此类常量不在全局符号表中,所以无需为其名称加前缀.     

OC高效率52:(一)了解OC起源

// //  ViewController.m //  OC高效率52之了解OC起源 // //  Created by Zoujie on 15/10/8. //  Copyright ? 2015年 Zoujie. All rights reserved. // #import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad

[DB][mybatis]MyBatis mapper文件中的变量引用方式#{}与${}的差别

MyBatis mapper文件中的变量引用方式#{}与${}的差别 默认情况下,使用#{}语法,MyBatis会产生PreparedStatement语句中,并且安全的设置PreparedStatement参数,这个过程中MyBatis会进行必要的安全检查和转义. 示例1: 执行SQL:Select * from emp where name = #{employeeName} 参数:employeeName=>Smith 解析后执行的SQL:Select * from emp where n

将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件

原文地址:将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件 需求如下:编写一个程序 将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中 a.txt文件中的单词用回车符分隔,b.txt文件中用回车或空格进行分隔. 废话不多说,直接上代码: package javase.arithmetic;   import com.google.common.base.Charsets; import com.google.common.base.Joiner;

MyBatis mapper文件中的变量引用方式#{}与${}的差别

MyBatis mapper文件中的变量引用方式#{}与${}的差别 默认情况下,使用#{}语法,MyBatis会产生PreparedStatement语句中,并且安全的设置PreparedStatement参数,这个过程中MyBatis会进行必要的安全检查和转义.示例1:执行SQL:Select * from emp where name = #{employeeName}参数:employeeName=>Smith解析后执行的SQL:Select * from emp where name

檢查php文件中是否含有bom的php文件

原文链接: http://www.cnblogs.com/Athrun/archive/2010/05/27/1745464.html 另一篇文章:<关于bom.php>,http://hi.baidu.com/aullik5/blog/item/f0e589127a28a2f0f7039e5e.html 另一篇文章:<[BOM]PHP程序的UTF8神秘编码问题之解>,http://www.mlecms.com/tech/56.html 类似WINDOWS自带的记事本等软件,在保存