在Swift开发中,新建了一个UIViewController的子类出现“No such module 'Cocoa' 的错误, 头部是import cocoa.. 原因很简单:在建立新的File文件的时候,选择的是“OS X”的项目,其实应该选择“iOS”的项目.所以删除错误文件,重新建立一个新的File文件,问题解决了:原来是自己忽略了这一点,导致的问题的出现.…
在xcode中创建一个Playground文件, 进行导包操作 ,import Cocoa 却提示No such module 'Cocoa' 原因是该Playground文件的platform 设置成了iOS,改为OS X 即可 如果进行导包操作 ,import UIKit 却提示No such module 'UIKit' 则原因相反,改为iOS即可 打开File Inspector,如下图设置    …
假如你来到这里,说明你已经開始着手使用swift这门新语言了. 就像Java有Maven一样.Objective-C也有自己的依赖管理工具cocoapods. 可是因为swift才出来不久,眼下非常多cocoapods管理的第三方库依旧是由Objective-C编写的. 为了可以在swift中使用这些类库.须要在Xcode中进行一些配置. 如果你的项目是基于cocoapods的,而且是通过XX.xcworkspace打开的.(Xcode6以上) 为了进行演示,如果导入的第三方库是MBProgre…
关于 swift 中的open ,public ,fileprivate,private, internal的区别 以下按照修饰关键字的访问约束范围 从约束的限定范围大到小的排序进行说明 open,public,fileprivate,private,internal 这几个修饰词的作用是用于修饰访问级别的. open,public 对应的级别是该模块或者是引用了该模块的模块可以访问 即 a belong to A , B import A 这两种情况都可以对 a进行访问 public: 类用p…
本文作者Nate Cook是一位独立的Web及移动应用开发者,是继Mattt大神之后NSHipster的主要维护者,也是非常知名活跃的Swift博主,并且还是支持自动生成Swift在线文档的SwiftDoc.org网站创造者.在本文中,他介绍了在Swift中使用JavaScript的方法和技巧,对于iOS和Web应用工程师有着非常实用的价值,以下为译文: 在RedMonk发布的2015年1月编程语言排行榜中,Swift采纳率排名迅速飙升,从刚刚面世时的68位跃至22位,Objective-C仍然…
未翻译完 待续(英语烂,求斧正) Type Casting 类型转换 Type casting is a way to check the type of an instance, and/or to treat that instance as if it is a different superclass or subclass from somewhere else in its own class hierarchy. 类型转换是检测实例所属类型的一种方法,和/或 去对待实例好像它是一个…
即使在 Swift APP 中没有一行 Object-c 的代码,每个 APP 也都会在 Object-c runtime 中运行,为动态任务分发和运行时对象关联开启了一个世界.更确切地说,可能在仅使用 Swift 库的时候只运行 Swift runtime.但是使用 Objective-C runtime 这么长时间,我们也应该让他充分发挥其作用. 下面我们将以 Swift 的视角来观察关联对象(associated objects])和方法交叉(method swizzling) 这两个在运…
Swift中的反射非常有限,仅允许以只读方式访问元数据的类型子集.或许 Swift 因有严格的类型检验而不需要反射.编译时已知各种类型,便不再需要进行进一步检查或区分.然后大量的 Cocoa API 会立即给实例分配"AnyObject"类型,用户只能想方设法去做类型匹配. 而这里将回顾 Swift 中的反射.镜像类型以及将它们结合起来的 MirrorType 协议. MirrorType 反射的切入点为「reflect」函数,「reflect」函数可将任何类型作为其单参数并返回一个…
最近关于CocoaPods有很多的议论.你可能从别的开发者那里听到过,或者在Github的目录中看到过.如果你之前从来没有用过,你可能会问,"CocoaPods到底是什么?" 它不是神秘的亚马逊区域的部落人用手捡出来的生可可的豆荚,肯定不是!让CocoaPods website来回答可能是最好的: CocoaPods是Cocoa项目的依赖管理工具.它有上千个能帮你优雅地扩充自己项目的库. 优雅地扩展项目听起来很令人好奇,但是什么是依赖管理工具呢?你为什么会需要它呢? 无论你正在创建一个…
这几个概念让人很迷惑,看了很多帖子,终于搞明白了,简单总结: Any 和 AnyObject 是 Swift 中两个妥协的产物.什么意思呢,oc中有个id关键字,表示任何对象,oc和swift混编的时候拿什么对应id呢?就发明出来了AnyObject.但是!oc中的NSString,NSArray等都是class,但是在swift中String,Array都是struct,这个怎么办呢,混编的时候NSString等类型对应的id就不能用AnyObject了,为了填坑,又搞出来个Any,表示任意类…