Xcode6- 一些变动

来源:互联网 发布:持仓异动指标源码文华 编辑:程序博客网 时间:2024/04/28 02:09

1:模拟器沙盒路径。

         /Users/sigboat/Library/Developer/CoreSimulator/Devices/2BD49DFB-3C21-4FCA-A4F8- 000B0F14E91/data/Containers/Data/Application/E5401588-0012-4113-8BE4-6FD1288B05A1/Documents


          注意:红色字体表示某个设备,蓝色字体表示某个应用



 2、NSUserDefault 文件存储位置变更
       NSUserDefault是iOS提供的本地化数据存储方式,会在沙盒中自动创建一个.plist的配置文件,将数据保存起来,在读取时,以NSDictionary字典来进行接收 
       在Xcode5及之前的版本中,具体的路径为:/Users/sigboat/Library/Application Support/iPhone Simulator/7.0.3/Applications/C9588981-3D82-49BC-92B8-F5BA72185629/Library,Preferences文件夹下,名称为程序Bundle Identifier的plist文件。在删除模拟器中的程序后,在Library文件夹下的plist文件会相应的删除。
       在Xcode6中,程序对使用NSUserDefault方式创建的plist文件的位置进行了更换,具体路径为:/Users/sigboat/Library/Developer/CoreSimulator/Devices/模拟器UDID/data/Library,Preferences文件夹下。

       通过以上可以看出通过NSUserDefault创建的plist文件真正存放的位置发生了变化,成了在模拟器的资料库文件夹下的Preferences文件夹下,也就是说当我们在删除模拟器中的应用程序后,真正的plist文件是不会被删除的,如果需要清除偏好设置文件需要手动到对应的目录下删除!在模拟器中,通过NSUserDefault自动创建的plist文件,在删除软件后,还会保留,但在真机中,也是会删除的,相应的plist文件的路径到了通过导出的Library文件夹下的Preferences文件夹下,删除应用程序后,不会保留。这应该算是一个真机和模拟器中的不同。


3:Xcode6模拟器不显示键盘解决办法

对于xcode6模拟器运行程序后不显示键盘。只需要打开模拟器,在菜单栏中选择:

hardware -> keyboard -> connect hardware keyboard(快捷键shift+command+k)

默认情况下,xcode使用电脑键盘作为外接键盘,不再弹出虚拟键盘。


4:XCode6 生成prefix.pch文件

 XCode6里, 新建工程默认是没有pch文件的,苹果取消pch文件这一点肯定有它的道理,刚开始很多人可能不适应,如果我们想使用pch文件,需要手动添加,添加步骤如下:(依旧直接上图)



      @ 取消的原因:

      Stackoverflow上有一个人对此的解释是这样的:
       I suspect because of modules, which remove the need for the  #import <Cocoa/Cocoa.h>.
       As to where to put code that you would put in a prefix header, there is no code you should put in a prefix header. Put your imports into the files that need them. Put your definitions into their own files. Put your macros...nowhere. Stop writing macros unless there is no other way (such as when you need __FILE__). If you do need macros, put them in a header and include it.
       The prefix header was necessary for things that are huge and used by nearly everything in the whole system (like Foundation.h). If you have something that huge and ubiquitous, you should rethink your architecture. Prefix headers make code reuse hard, and introduce subtle build problems if any of the files listed can change. Avoid them until you have a serious build time problem that you can demonstrate is dramatically improved with a prefix header.
       In that case you can create one and pass it into clang, but it's incredibly rare that it's a good idea.


       翻译过来 大致就是说 也许是因为组件单一模块的原因,所以 放弃了对<Cocoa/Cocoa.h>的import
       你不应该在你的prefix代码中放入任何的代码,把他们放在你确实需要放入的文件中。把你的定义放到属于他们的文件中。 尽量不要使用宏定义(define)。。除非是非不得已的时候,(这里 插一句 不使用宏定义的原因是 宏定义是在预编译的时候处理的 因此 当你修改宏定义的时候 会导致大量的代码被重新编译 另外 宏定义存在许多潜在的bug 是因为在预编译的时候,他并不会被发觉到的)。如果你确实 在被逼无奈需要使用宏定义,把他们放在需要被include的头文件中,而不是放在prefix文件中。 
       prefix header文件是被那些大量使用 以及 几乎所有系统中的文件都需要被使用(例如 Foundation.h)。如果 你有一些东西大量存在,你应该重新思考你的架构问题你。因为 当你修改你prefix header的一些代码的时候,prefix header导致整个项目重新编译,这让你的代码重用变得困难,并且导致一些琐碎build的问题。所以 不要去使用prefix header 这样可以避免你大量的重新编译整个项目的时间 

       如果你仍然想要使用预编译,你可以创建一个新的并且传递给编译器的前段,这种方法很少见(我没用过),但确实是一个不错的方法


5:如何创建空工程。

       1:首先你要安装的有xcode5,从xcode5里面把创建空文件的项目拷贝到xcode6 里面。

       2:在xcode5的路径是:/Applications/Xcode 3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/Project Templates/Application/Empty Application.xctemplate

       3:拷贝到/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/Project Templates/iOS/Application下就可以了。


6:在xcode6里面 你可能找不到创建 Objective-C category 类别等文件.

               至于category和extension,New File -> Objective-C File,然后Next选择File Type。

      

7:使用定位的时候 在plist加设置


NSLocationWhenInUseUsageDescription ->  string  

NSLocationAlwaysUsageDescription ->   boolean    yes

 

0 0