include,import,@class的区别
1.#include与#import功能一样,都是导入头文件
2.区别是#include是单纯导入头文件,如果重复导入头文件,头文件就被导入多分
3.#import在导入头文件之前会检查之前是否导入过,如果导入过,就不在编译。防止重复编译
4.#import只能在OC中使用,#include既能在OC中使用又能在C中使用
5.@class防止循环导入,告诉下面有这个类。
下面用例子来说明一下:有两个类,一个Boy,一个Girl
Girl类
#import <Foundation/Foundation.h>
@class Boy;
//下面有Boy这个类型
//如果发生循环引用问题,用@Class解决.
//@Class是使用在.h文件中
//如果使用的Class就要在.m中#import
@interface Girl : NSObject
{
//Boy类型
Boy *_boyFriend;
}
@end
#import "Girl.h"
#import "Boy.h"
@implementation Girl
@end
Boy类:
#import <Foundation/Foundation.h>
@class Girl;
//@class告诉下面有Gril这个类型
@interface Boy : NSObject
{
Girl *_girlFriend;
}
@end
#import "Boy.h"
#import "Girl.h"
@implementation Boy
@end
include,import,@class的区别的更多相关文章
- 【转】#include,#import,@class的区别
#include #include <> :用于对系统文件的引用,编译器会在系统文件目录下去查找该文件. #include "xx.h ...
- 转发(request.setRequestDispacter)和重定向(response.sendRedirect)的区别以及转发的include和forward的区别
//response 重定向的时候,url是会跳转到新的页面的,输入的地址要包含项目名(可以跳到项目之外的页面,比如百度)//request 请求转发的时候,url是不会跳转到新页面的,输入的地址不包 ...
- php中include()和require()的区别
1.引用文件方式 对 include()来说,在include()执行时文件每次都要进行读取和评估:而对于require()来说,文件只处理一次(实际上,文件内容替换 了require()语句.这就意 ...
- [转]require(),include(),require_once()和include_once()区别
require(),include(),require_once()和include_once()区别 面试中最容易提到的一个PHP的问题,我想和大家共勉一下: require()和include() ...
- 关于require,require_once,include和include_once的区别
一.定义 require,require_once,include,include_once都属于PHP的关键字,也就是说它们实际都是PHP的语句,而不是函数,类似于print,echo一样,也是PH ...
- PHP中include和require的区别
include和require的区别,其实两者没有太大的区别,如果要包含的文件不存在,include提示notice,然后继续执行下面的语句,require提示致命错误并且退出. 根据测试,win32 ...
- php引入文件(include 和require的区别)
引入文件: 首先需要一个php文件: <?php class shao//类名必须和文件名相同!!! { public $xxx="666"; } $shili = new ...
- module.exports,exports,export和export default,import与require区别与联系【原创】
还在为module.exports.exports.export和export default,import和require区别与联系发愁吗,这一篇基本就够了! 一.首先搞清楚一个基本问题: modu ...
- php require、require_once和include、include_once的区别
一.引入php文件路径的方法require '文件路径'; require ('文件路径');require_once '文件路径'; require_once ('文件路径');include 同 ...
随机推荐
- 基于mini2440的Tslib的移植
软件平台: win7系统,虚拟机ubuntu12.04 mini2440开发板 tslib是电阻式触摸屏用于校准的一个软件库,是一个开源的程序,能够为触摸屏驱动获得的采样提供诸如滤波.去抖.校准等功能 ...
- ios硬件编码
video-videoToolbox: http://www.cnblogs.com/sunminmin/p/4976418.html audio-AudioToolbox: http://blog. ...
- LB负载均衡层次结构(摘抄)
作为后端应用的开发者,我们经常开发.调试.测试完我们的应用并发布到生产环境,用户就可以直接访问到我们的应用了.但对于互联网应用,在你的应用和用户之间还隔着一层低调的或厚或薄的负载均衡层软件,它们不显山 ...
- 代码中AggregateException的处理
在async方法中,发生一个异常时,代码并不会直接跳到catch语句中去,而是继续执行,所以到最后catch语句中得到的错误信息是one or more exceptions occurs- 这样 ...
- REST及RESTful的实现
什么是REST? REST (REpresentation State Transfer) 描述了一个架构样式的网络系统,比如 web 应用程序.它首次出现在 2000 年 Roy Fielding ...
- HDOJ(2056)&HDOJ(1086)
Rectangles HDOJ(2056) http://acm.hdu.edu.cn/showproblem.php?pid=2056 题目描述:给2条线段,分别构成2个矩形,求2个矩形相交面 ...
- Linked List Start!
(1)Delete Node in a Linked List 题意简单明了,用后一个节点来替换要删除的节点即可.代码如下: /** * Definition for singly-linked li ...
- ajax回调打开新窗体防止浏览器拦截有效方法
ajax回调打开新窗体防止浏览器拦截,就这么做! 问题剖析: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 function click_fun(){ window ...
- 全面总结sizeof的用法(定义、语法、指针变量、数组、结构体、类、联合体、位域位段)
一.前言 编译环境是vs2010(32位). <span style="font-size:18px;">#include<iostream> #inclu ...
- JSON文本转换为JSONArray 转换为 List<Object>
package com.beijxing.TestMain; import java.io.File; import java.io.IOException; import java.util.Arr ...