官网的链接:
https://developer.apple.com/library/content/releasenotes/DeveloperTools/RN-Xcode/Introduction.html#//apple_ref/doc/uid/TP40001051-CH1-SW1
或者在xcode上的help上面选择对应的内容;
xcode 8.1增加了touch bar 的内容:
下面是检测对应的是否支持touchBar:(应该还是没有用到)
For example, the following Objective-C code performs a runtime check to make sure NSTouchBar is available:
NSClassFromString(@"NSTouchBar") != nil
In Swift code, do an availability check for macOS 10.12.1, and a runtime check for Touch Bar class availability. For example:
NSClassFromString("NSTouchBar") != nil 检查touch bar 是否有问题没?
注意出现的错误:
1)xcode 项目存储在iCloud Drive上面,当程序编译运行的时候,xcode不能够自动识别同步冲突和检测文件别调用;
2)打开存储都在iCloud Drive 的xcode项目或者workplace的时候,或者改变源代码控制分支对于开放的workspace或者项目存储到iCloud Drive上面,有可能会造成xcode 悬挂。
注意:10.12 上,Document、 Desktop文件可以被选择在 iCloud Drive 位置上.
10.11 是最后一个发布支持garbage collection runtime 的系统,以后将不会有garbage collection 属性和方法或者将不会启动garbage collection runtime。这个过程使用 开发作者应该使用ARC或者手动retain/release 在内存管理上面。
参考链接:
http://www.cnblogs.com/whyandinside/p/3489951.html
ARC /relaeasing bool /garbage collection
swift上optional以及nil和oc语言之间的转化;
如果optional里面的值是不为空的,转化为对应的oc对象,若是[T?] 转化为NSArray的数组类型;
如果是nil值的时候,转化的过程中是没有nil指针,所以会转化为对应的NSNull进行替换;
ps: 因为oc中的nil和swift中的nil是不一样的;
参考链接:
https://github.com/apple/swift-evolution/blob/master/proposals/0140-bridge-optional-to-nsnull.md
http://www.cnblogs.com/wanglekai/p/5402816.html
oc上面:
有关的内容的处理:
nil:指向oc中对象的空指针
Nil:指向oc中类的空指针
NULL:指向其他类型的空指针,如一个c类型的内存指针
NSNull:在集合对象中,表示空值的对象
若obj为nil:
[obj message]将返回NO,而不是NSException
若obj为NSNull:
[obj message]将抛出异常NSException
ps: nil就是对象,null就是指,Nil就是类,NSNull是一个对象(空的而已),是一个对象,只不过值为空,使用场景:替换掉nil不能够使用的地方;
尤其是在转化过程中;
参考链接:
http://blog.csdn.net/lcg910978041/article/details/51498926 oc nil
https://onevcat.com/2014/06/walk-in-swift/ swift nil (需要更加形象的理解nil)
swif中可以optional类型转化为 Any类型对象 (也就是nonull),如下图:
c 、 c++的内容
Objective-C and C++
1)oc现在支持ARC样式的weak引用 在文件上在MRC的模式下;(这个必须开启手动项目设置)。__weak 过去访问和忽略在MRC文件中 ; 这个也就是手动管理下面有了weak字段;
2)MRC 方式的弱引用在当前的系统11.12 上支持,__weak 实例变量在没有起到作用如果@implementation 定义了MRC的方式,NSCopyObject()将不会工作,直接访问KVO是不工作的。一个变通的方法:KVC 和IBOutlet的方法和属性;
ps:weak字段在MRC上面的使用;
**Source Editor **源码编辑
好像xcode 8 之后,就装不了管理插件的开源工具:alcatraz(以前在help上可以看到)
http://alcatraz.io/
一个插件安装器=
源代码编辑的扩展:
1)xcode的特性通过扩展更加可靠;
2)XCSourceTextRange 是半开闭方式, [) 的方式, xocde8.1 之后就没有XCXcodeKitVersionNumber 的检查, 头文件: XcodeKit/XcodeKitDefines.h.
interfere builder (界面)
新特性:
直接继承UIGestureRecongnizer类,而不是NSObject类,至于手势定义应该是怎么样进行处理的内容;解决了以前组合和子弟定义手势识别集成在一个UIView上面的时候编译失败的问题;
button上面的画布进行了根性;点击button的时候就会更新它(按钮)上面的子对象;
Pin 按钮在画布的地步被移除到添加新的月护士哈桑面了;
Debugging
1)exec()这个方法的调用顺序;
2)If any Swift code contains a private func == definition, LLDB fails to evaluate expressions in a Swift context with the error: binary operator '==' cannot be applied to two 'Int' operands. To work around this issue, make any == overloads in your program non-private. (27015195) (这个不知道是什么问题)
Debugger() and DebugStr() 过时,在原来的cheme里面没有选项起送这个函数了;
如果项目中使用了这写方法啊,可以设置环境变量: USERBREAK 的值为1;
模拟器上的问题;
1。应用帖子可以在 32位模拟器上在xcode上使用
2、模拟器在设备启动,旋转、范围变化不再泄露内存;
Instruments
automation INstrumment 被移除掉,使用UI Texting 代替; (没有了自动化测试了)
command Line Tools (命令行)
解决问题;
simctl launch 子命令在xcrun 中现在支持app的标准输出和错误的标准输出到一个标准的文件中或者本地终端;
xcode-select 就是管理活动的开发者目录给Xcode和BSD工具;
Xcode 8.2 bata
还有一个新的特性,就是可以安装应用了,也就是将这个app拖进去模拟器上,就可以进行安装了了;
模拟器上显示了对应的live photo 在9.1 之后的内容;
UTI: (统一类型标示符)表示设备的唯一标示符
//www.greatytc.com/p/d6fe1e7af9b61
XPC 服务????