工具篇
- Xcode 9添加图片到Assets.xcassets的方法:
点击开Assets.xcassets 在AppIcon 里拖图片,注意不要拖图片到项目导航里; 改变Xcode的swift的版本:
由于有时候会导入旧版本的代码,会报错:1The Swift Language Version (SWIFT_VERSION) build setting must be set to a supported value for targets which use Swift. This setting can be set in the build settings editor需要设置swift的version,点击项目,在右侧的选择
Build Settings
找到Swift Language Version
的选项,选择相应的版本;通过pod 安装依赖,再次打开项目的时候要打开.xcworkspace文件打开项目,其他方式打开项目会build error: ‘Can not find module: XXXX’
swift 语言基础
一、swift语言里有两类属性变量:及存储属性和计算属性的变量;
存储性的变量和之前的其他语言差不多,下面的name,和tel就是存储变量
1234struct Person {let name: Stringvar tel: String}计算属性值,提供getter和setter的方法,间接设置或者改变值;下面的
Person
的name
属性就是计算属性值,123456789101112class Person{var _name: String = ""var name: String {set(newName) {_name = newName// 各种其他操作}get{return _name}}}二、 swift中的协议
Protocol
swift语言中的协议和java中接口语义是相似的,协议可以采用多个其他的协议,协议里的可以明确的继承实现也可以选择性的继承实现,也可提供一个默认的协议实现(这个类似java的虚类,java新版本的也支持在interface中有实现方法与之类似)协议的语法:
123protocol Some {// 协议的定义区域}协议的要求:每个协议的方法必须要实现,但是optional修饰的可以不用去实现,同时注意一点:
@objc
修饰的方法只能存在于类中,所以必须要在protocol中使用@objc修饰限制;12345678910111213141516protocol Some {func random() -> String}class SomeP: Some {func random() -> String {return "random string !!!!"}}OSome {protocaloptional func rr() -> String}class OP: OSome {//可以为空}