태그 보관물: Swift

내일 날자를 만들어 봅시다.

swift에서 초 단위의 데이터를 사용하지 않고, 내일 날자를 구하는 코드입니다.


// 아래 코드는 swift 2.0에서 현재 시간에 하루를 더하는 것을 보여주고 있습니다.
let now = NSDate() // 현재 시간 정보를 넣습니다.
let comp = NSDateComponents() // 하루를 더하기 위해서 NSDateComponents를 하나 만듭니다.
comp.setValue(1, forKey: "day") // 위에서 만든 곳에 1일을 넣습니다. forKey를 바꾸면 다른 것도 넣을 수 있습니다.
let myCal = NSCalendar.init(calendarIdentifier: NSCalendarIdentifierGregorian) // 하루를 더해서 넣을 NSCalendar를 하나 만듭니다.
let tomorrow = myCal!.dateByAddingComponents(comp, toDate: now, options: NSCalendarOptions(rawValue: 0)) // 위에서 만든 현재 시간인 now에 myCal을 이용하여 하루를 더해서 tomorrow에 넣습니다.

view raw

AddOneDay.swift

hosted with ❤ by GitHub

String 를 NSData 로, NSData 를 String 로

swift에서 String를 NSData로, NSData를 String로 바꾸는 코드입니다.


var swift_string = "lorem ipsum dolor sit amet"
// from String to NSData
let data = swift_string.dataUsingEncoding(NSUTF8StringEncoding)
print(data)
// from NSData to String
var out: String = String(data:data!, encoding:NSUTF8StringEncoding)!
print(out) // print "lorem ipsum dolor sit amet"

Swift 2.x에서 .toInt() 명령어가 사라지고, 대신 초기자 Int 등장!

Swift 2.x에서 string(문자)를 int(숫자)로 바꿔 주는 .toInt() 함수가 없어졌네요. 헐! 그 대신 문자열을 제어할 수 있는 초기자(initializer), Int 가 생겼습니다. 다음 코드를 보시면 쉽게 아실 수 있습니다.


// from string to int in swift
let intString: String = "256"
let stringInt: Int? = Int(intString)

Swift에서 array 초기화 하기

참 책을 만들면서 뭔가 바뀌면, 정오표를 만들어 제공하는 것이 예의인데, 그냥 개정판을 내는 것은 도리가 아닌 것 같다. swift에서 배열을 초기화하는 것은 다음과 같이 해서는 안 된다.

[code lang=swift]
var WrongArrayInit = Int[]()
[/code]

다음과 같이 해야 한다.

[code lang=swift]
var RightArrayInit = [Int]()
[/code]

애플 공식문서에 하면, “You can create an empty array of a certain type (without setting any initial values) using initializer syntax:

[code lang=swift]
var someInts = [Int]()
println("someInts is of type [Int] with (someInts.count) items.")
[/code]