Swift实战总结1

1.guard语句:

功能与if语句相同:基于一个表达式的布尔值去判断一段代码是否该被执行。与if不同的是:guard语句只有在条件不满足的时候才会执行这段代码,多用在可选绑定。如下例:

func fooGuard(x: Int?) {
    guard let x = x where x > 0 else {//where语句是对表达式加上一个约束
	// 变量不符合条件判断时,执行下面代码
            return
        } 
     x.description
}
 
 如果条件(x>0)不符合,guard的else语句就运行,从而退出这个函数,如果通过了条件判断,可选类型的变量在guard语句被调用的范围内会被自动的拆包 - 这个例子中该范围是fooGuard函数内部。 
 

2.@objc:修饰后的类型可以直接供 Objective-C 调用。

@IBAction/@IBOutlet:修饰的变量与函数表示与xib文件或者storyboard关联。

lazy:只能修饰var,修饰后的变量只有在第一次使用后才会初始化,而不是像普通var变量在大类初始化时跟着初始化。

wear/strong/unowned:与对象的自动引用计数有关。

Outlet/Outlet Collection/Action:修饰控件,Outlet修饰的控件以定义变量的方式将控件链接到代码,该变量代表控件;Action修饰的控件以定义方法的方式将控件链接到代码,该方法在用户与控件进行交互时运行。

3.在使用view.addSubview添加UIView时,视图按照加入的顺序覆盖。

4.在设置Segue时show是将新的视图控件push到视图堆栈的顶端予以显示,然后通过按键pop返回上一视图,所以会有系统自带的反回按键,show detail 是用新的视图替换原始图,所以没有返回按钮也无法返回。present modally是使用模态展示,弹窗上的交互没有结束前是不能操作主页的。

5.as的使用场合:(1)从派生类转换成基类:let animal = cat as Animal

(2)数值转换:let number = 42 as CGFloat

(3)switch语句中进行模式匹配(即当不知道一个对象的类型可使用switch检测类型):

switch animal {
case let cat as Cat:
print("如果是Cat类型对象,则做相应处理")
case let dog as Dog:
print("如果是Dog类型对象,则做相应处理")
default: break
}
(4)as!的使用:

向下转型时使用。由于是强制类型转换,如果转换失败会报 runtime运行错误。

(5)as?的使用:as? as!操作符的转换规则完全一样。但 as? 如果转换不成功的时候便会返回一个 nil对象。成功的话返回可选类型值(optional),需要我们拆包使用。


6.“App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app’s Info.plist file”

找查资料后发现,新特性要求App内访问网络请求,要采用 HTTPS协议。

但是现在公司的项目使用的是 HTTP 协议,使用私有加密方式保证数据安全。现在也不能马上改成 HTTPS协议传输。

最终找到以下解决办法:

1、在Info.plist中添加 NSAppTransportSecurity类型 Dictionary ;

2、在 NSAppTransportSecurity下添加 NSAllowsArbitraryLoads 类型Boolean ,值设为 YES;


7.通用的splitViewController:

参考:http://nshipster.cn/uisplitviewcontroller/


8.iOS中显示文字方式有三:UILabel,UITextField,UITextView,其中能够接受用户输入的有UITextField和UITextView,而UITextView支持多行文字。


9.Xcode工程目录的folder和group的区别:

参考:https://www.jianshu.com/p/2ddba8c0062c

xcode中加入资源文件夹:

要到项目实属性->Build Phases中的Copy Bundle Resources加上文件夹。






猜你喜欢

转载自blog.csdn.net/LawGeorge/article/details/79393831