问号?
a.声明时添加?,告诉编译器这个是Optional的,如果声明时没有手动初始化,就自动初始化为nil
b.在对变量值操作前添加?,判断如果变量时nil,则不响应后面的方法。
叹号!
二、枚举相关值
1 model 文件
public enum Trade
{
case Buy(String,Int)
case Sell(String,Int)
}
class KGModel: NSObject,KGModelInterface {
}
2 ViewController 文件
class ViewController: UIViewController,UITextViewDelegate {
var lastView:KGView!
var viewmodel:KGModel!
override func viewDidLoad() {
super.viewDidLoad()
self.viewmodel = KGModel.init()
self.lastView = KGView.init(frame: CGRect(x:100,y:100,width:100,height:100))
lastView.model = self.viewmodel
self.view.addSubview(self.lastView)
let buy = Trade.Buy("buy",500)
let sell = Trade.Sell("sell",1000)
lastView.testEnum(tr: buy)
lastView.testEnum(tr: sell)
}
}
输出 start = buy end = 500
start = sell end = 1000
三、接口继承(代理)
1 接口文件
public protocol KGModelInterface:NSObjectProtocol
{
func testInterface() -> Void
}
2 继承接口文件
class KGModel: NSObject,KGModelInterface {
func testInterface() {
print("接口函数测试")
}
}
viewmodel.testInterface()
从例子可以 理解了 从OC到swift的借口类型传递的编程方法过渡及使用。
四 使用try?
try?会将错误转换为可选值,当调用try?+函数或方法语句时候,如果函数或方法抛出错误,程序不会发崩溃,而返回一个nil,如果没有抛出错误则返回可选值。
使用try!
使用try!可以打破错误传播链条。错误抛出后传播给它的调用者,这样就形成了一个传播链条,但有的时候确实不想让错误传播下去,可以使用try!语句。
原文地址:https://www.jb51.cc/swift/320845.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。