Swift 3.0 で変わったところから、興味の湧いた 13 項目を、自分が開催する "カジュアル Swift 勉強会" の紹介も兼ねつつ、Swift 愛好会で発表してきました。
少し前に iPhone Dev Sapporo 勉強会で話した内容から、項目数は減らしつつも、新たな項目を紹介したり、紹介済みの項目についても内容を少し膨らませたりしています。
34. enum Item {
case binary(NSData)
}
let data1: NSMutableData = …
let data2: NSData = …
let item = Item.binary(data1)
data1.appendData(data2)
35. enum Item {
case binary(Data)
}
var data1: Data = …
let data2: Data = …
let item = Item.binary(data1)
data1.appendData(data2)
36.
37.
38.
39. Advance to the next element and return it, or `nil` if no
next element exists.Once `nil` has been returned, all
subsequent calls return `nil`.
protocol IteratorProtocol {
associatedtype Element
mutating func next() -> Element?
60. class Base : Equatable {
func isEqual(to rhs: Base) -> Bool {…}
}
class Sub : Base {
override func isEqual(to rhs: Base) -> Bool {…}
}
func == (lhs: Base, rhs: Base) -> Bool {
return lhs.isEqual(to: rhs)
}
61. class Base : Equatable {
class func == (lhs: Base, rhs: Base) -> Bool {…}
}
class Sub : Base {
override
class func == (lhs: Base, rhs: Base) -> Bool {…}
}
75. switch (value1, value2) {
case let (value?, nil), let (nil, value?):
return value
case let (value1?, value2?):
return value1 + value2
case (nil, nil):
return 0
}
76. switch device {
case
let .iPhone(_, osVersion, network, _)
where osVersion > 8.0,
let .iPad(_, osVersion, network, _, true)
where network == .cellular,
doSomething(device, osVersion, network)
case .iPodTouch:
doSomething(device)
default:
doSomething()
}