for example 三个文件
文件A.h
文件B.h
文件C.h
文件C.h需要引入A.h、B.h ,文件B.h需要引入文件A.h,这样就重复引用了A.h两次,使用#import可以进行优化
一、 Objective-C 中 #import 和 #include 的区别
预编译指令
Objective-C:#import
C,C++:#include
#import由gcc编译器支持
在 Objective-C 中,#import 被当成 #include 指令的改良版本来使用。除此之外,#import 确定一个文件只能被导入一次,这使你在递归包含中不会出现问题。
使用哪一个还是由你来决定。一般来说,在导入 Objective-C 头文件的时候使用 #import,包含 C 头文件时使用 #include。比如:
#import
#include
#include
#import比起#include的好处就是不会引起交叉编译
二、@class是用来做类引用的
@class就是告诉编译器有这么一个类,至于类的定义是啥不知道
@class一般用于头文件中需要声明该类的某个实例变量的时候用到,在m文件中还是需要使用#import
举个例子说明:
在ClassA.h中
#import ClassB.h 相当于#include整个.h头文件。如果有很多.m文件#import ClassA.h,那么编译的时候这些文件也会#import ClassB.h增加了没必要的#import,浪费编译时间。在大型软件中,减少.h文件中的include是非常重要的。
如果
只是@class ClassB 那就没有include ClassB.h。仅需要在需要用到ClassB的ClassA.m文件中 #import ClassB.h
那么什么时候可以用@class呢?
如果ClassA.h中仅需要声明一个ClassB的指针,那么就可以在ClassA.h中声明
@ClassB
...
ClassB *pointer;
代码在:
https://code.google.com/p/trinea-android-demo/source/browse/trunk/src/cn/trinea/android/demo/ViewPagerMulTiFragmentDemo.java
实现要注意的是:
1. ViewPager在上层布局中加入
android:clipChildren="false" android:layerType="software"
2. ViewPager中使用
android:layout_marginLeft="xx" android:layout_marginRight="xx"
3. 代码中ViewPager的对象设置
// pageCount设置红缓存的页面数 mViewPager.setOffscreenPageLimit(pageCount); // 设置2张图之前的间距。 ViewPager.setPageMargin(xx);
提要
还在为学习苹果开发的装备发愁么 ,也许这篇文章会给你带来一些启发。
关于黑苹果:从苹果采用intel的处理器之后,mac os被黑客破解之后可以安装在PC上,从而出现了一大批未购买苹果机而使用苹果操作系统的机器,这种就被称为黑苹果(Hackintosh),在mac苹果机上面安装原版mac系统的被称为白苹果(Macintosh),与黑苹果相对。
硬件配置
CPU:T5870 2.0G
内存:3G(标配2G另配1G)
硬盘:日立 250G
显卡:NVIDIA GF9300M GS 256M显存
网卡:Realtech RTL8169(有线)intel(无线)水星usb网卡
蓝牙:博通
声卡:Cx20561
看一下最终效果:
cpu,显卡,键盘,鼠标,小红点,触控板,有线网卡正常识别。
有线网卡29元解决,不刷bios。
需要下载的工具及镜像
光盘镜像 OSX 10.8.4 - http://kuai.xunlei.com/d/QtkbAgIa6ACBgrJRdf5
win7下mac文件系统查看工具 Paragon hfs+ 10.0
多系统引导工具变色龙 Chameleon2012
硬盘写入助手 Leopard hd install helper v0.3
U盘操作系统WinPE.iso
镜像烧录工具ultraiso
空4g U盘一只
相关驱动
准备活动
1.开机进bios,将硬盘模式设置为achi;(修改后系统可能无法进入,那么需要重新安装windows)
在windows7中
2.用ultraiso将winpe.iso烧录进u盘,后面激活分区会用到;
3.用windows自带的分区工具分出一个6g的盘,记住不要格式化,用于写入安装镜像,再分出一个20g以上的分区(所有应用都会装在这个盘,越大越好),格式化,用于安装moutain lion;
4.安装Paragon hfs+ 10.0。
重启电脑 ,还是进windows7
5.用Leopard hd install helper 将镜像写入到刚分好的6g的盘,除了写入那个勾,其余的勾都不打,这个过程软件可能会不响应,强制关闭软件后格式化这个6g分区(一定要),删除分区,再创建新分区,重新写入,一般试两次就ok了;
6.等待镜像写入成功了看是否提示Set partition AF successful,如果没有可以用系统自带的diskpart修改一下;
7.安装变色龙,直接双击,选择主题,intall,提示安装成功就可以了;
8.配置安装用的驱动:把 extra.zip 解压后放置于安装盘根目录下,删除原来的extra文件夹;进入S /L/E,将压缩包 放入SLE.zip 里的所有kext放进去;
9.重启电脑,选择变色龙,引导刚才写好的系统盘安装,最好用 -v 可以看后台执行的情况,正常情况下就进入系统的安装阶段了,如果报错,检查是否有漏步骤,或者重头来一遍;
10.安装开始的时候用磁盘工具 erase 掉之前分出来的盘,格式为扩展(日记),然后安装,安装完之后提示安装出错,不用管。
重启,还是进windows7
11.把 extra.zip 解压后放置于ML所在磁盘根目录下,将压缩包 放入SLE.zip 里的所有kext都放进ML所在磁盘的SLE里;
12.重启选变色龙,-v 进入ML,查看是否能顺利进入系统;
13.若能成功进入系统,安装我分享的网卡驱动,安装过程中可能会提示出现错误,不用害怕,点 取消 就好,实际上已经安装成功了,重启;
14.再次-v 进入ML,打开附件 必备软件.zip 里的 kextutility,输入密码后它会自动修复磁盘权限,完成后,进入launcherpad-其他,运行 磁盘工具,选择ML所在磁盘,点击 修复磁盘权限,完成后重启。
关于无线网卡
选择水星的无线网卡 - http://item.jd.com/368884.html 29rmb
安装usb无线网卡驱动。
系统基本安装完成。
1.添加中文输入法
System Preference -> Language&Privacy -> Input Source
把Chinese给勾选上;
2.复制粘贴剪切
在windows和ubuntu下面是ctrl+c\v\x,苹果默认是commond键,也就是win键,现在改回来。
System Preference -> Keyboard - > Modifier Key,设置成下面这样:
这个黑苹果来来回回纠结了大概一周的时间,好在成果还算不错,运气比较好^^. 对于专业的苹果开发,当然是白苹果最好,稳定性在那摆着。但对于学生开发者或者刚起步的独立开发者,黑苹果在节省了一笔不小的设备开支的情况下不失为一个好的选择。