[iOS] Swift3의 변화

4105 단어
//   Swift 2  ,  Swift 3  
"mystring".writeToFile("filename.txt", atomically: true, encoding: NSUTF8StringEncoding)
"mystring".write(toFile: "filename.txt", atomically: true, encoding:NSUTF8StringEncoding)

UIFont.preferredFontForTextStyle(UIFontTextStyleSubheadline)
UIFont.preferredFont(forTextStyle: UIFontTextStyleSubheadline)

override func numberOfSectionsInTableView(tableView: UITableView) -> Int
override func numberOfSections(in tableView: UITableView) -> Int

func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView?
func viewForZooming(in scrollView: UIScrollView) -> UIView?

NSTimer.scheduledTimerWithTimeInterval(0.35, target: self, selector: #selector(reset), userInfo: nil, repeats: true)
Timer.scheduledTimer(timeInterval: 0.35, target: self, selector: #selector(reset), userInfo: nil, repeats: true)

swift2와 swift3 문법 변화
//   Swift 2  ,  Swift 3  
let blue = UIColor.blueColor()
let blue = UIColor.blue()

let min = numbers.minElement()
let min = numbers.min()

attributedString.appendAttributedString(anotherString)
attributedString.append(anotherString)

names.insert("Jane", atIndex: 0)
names.insert("Jane", at: 0)

UIDevice.currentDevice()
UIDevice.current()

GCD 쓰기 변화
// Swift 2  
let queue = dispatch_queue_create("com.test.myqueue", nil)
dispatch_async(queue) {
    print("Hello World")
}
// Swift 3  
let queue = DispatchQueue(label: "com.test.myqueue")
queue.async {
    print("Hello World")
}

Core Graphics 쓰기 변화
// Swift 2  
let ctx = UIGraphicsGetCurrentContext()
let rectangle = CGRect(x: 0, y: 0, width: 512, height: 512)
CGContextSetFillColorWithColor(ctx, UIColor.blueColor().CGColor)
CGContextSetStrokeColorWithColor(ctx, UIColor.whiteColor().CGColor)
CGContextSetLineWidth(ctx, 10)
CGContextAddRect(ctx, rectangle)
CGContextDrawPath(ctx, .FillStroke)
UIGraphicsEndImageContext()
// Swift 3  
if let ctx = UIGraphicsGetCurrentContext() {
    let rectangle = CGRect(x: 0, y: 0, width: 512, height: 512)
    ctx.setFillColor(UIColor.blue().cgColor)
    ctx.setStrokeColor(UIColor.white().cgColor)
    ctx.setLineWidth(10)
    ctx.addRect(rectangle)
    ctx.drawPath(using: .fillStroke)
    
    UIGraphicsEndImageContext()
}

매거 매거 중case값의 대소문자: 매거에 정의된case값은 현재 작은 낙타봉 명명법을 사용합니다.이것은 속성 이름이나 변수 이름과 일치하도록 하기 위해서입니다.
//   Swift 2  ,  Swift 3  
UIInterfaceOrientationMask.Landscape
UIInterfaceOrientationMask.landscape

NSTextAlignment.Right
NSTextAlignment.right

SKBlendMode.Multiply
SKBlendMode.multiply

만약 이 방법 이름에'ed'또는'ing'접두사가 포함되어 있다면, 이것은 명사라는 것을 나타낸다.방법명이 명사인 방법에는 반환값이 있다.만약 이 접두사를 포함하지 않는다면, 이것은 동사일 가능성이 높다.동사를 명명하는 방법은 어떤 블록이 인용한 메모리에 대해 약간의 조작을 할 것이다.즉, 값 수정이라고 합니다.
customArray.enumerate()     // .
customArray.enumerated()    // , .

customArray.reverse()
customArray.reversed()

customArray.sort() // changed from .sortInPlace()
customArray.sorted()

함수 매개 변수 함수는 성명과 호출을 할 때, 매개 변수를 괄호로 묶어야 한다.
func f(a: Int) {}
// Swift 2  
Int -> Float
String -> Int
T -> U
Int -> Float -> String
// Swift 3  
(Int) -> Float
(String) -> Int
(T) -> U
(Int) -> (Float) -> String

클래스 NS 접두사
var url1:NSURL
var url2:URL

var data1:NSData
var data2:Data

다른 변경 클래스 방법은 클래스 방법이나 클래스 속성을 사용할 때 반드시 이렇게 해야 합니다: Custom Struct.staticMethod () 는 이제 이전 쓰기 대신 이니셜 대문자 Self 를 사용할 수 있으며 유형의 인스턴스로 정적 방법이나 속성을 호출할 수 있습니다.
struct CustomStruct {
  static func staticMethod() { ... }
  func instanceMethod()
    Self.staticMethod() // in the body of the type
  }
}
let customStruct = CustomStruct()
customStruct.Self.staticMethod() // on an instance of the type

C 컨셉의 For 사이클을 없애도록 하겠습니다.
for(var i = 0; i < 10; i++)

콜리화 문법을 뺐어요. 이 문법은 이해하기 어려워서 뺐어요.
 ++ – 

Swift Package Manager Swift 언어 자체 패키지 관리 도구입니다.

좋은 웹페이지 즐겨찾기