import UIKit


class ViewController: UIViewController

{

    @IBOutlet weak var display: UILabel!

    //weak 메모리 관리를 알아서 해준다 var 변수의미

    //let 상수를 의미한다. display 라벨의 이름이다

    

    var userIsInTheMiddleOfTypingANumber: Bool = false

    //swfit에서는 모든 것들이 초기화 되어야 한다

  // 위의 변수가 초기화 되지 않으면 에러가 표시된다

    @IBAction func appendDigit(sender: UIButton) {

        let digit = sender.currentTitle!

        

        if userIsInTheMiddleOfTypingANumber

        {

            display.text = display.text! + digit

        } else

        {

            display.text = digit

            userIsInTheMiddleOfTypingANumber = true

        }

        

        //display.text = display.text + digit

        //에러

        

        println("digit =  \(digit)")

    }

}


처음 예제는 Label과 버튼을 활용한 화면 구성과 간단한 Swift의 문법에 대해서 강의했다.
일단 Swift의 label과 버튼의 추가는 매우 쉽다. 간단한 드래그와 컨트롤 키를 활요한 클릭으로 화면에 알맞는 비율의 배치를 손 쉽게 설정할 수 있다. 

또한 View Controller를 통해 배치가 잘못된 버튼 등을 알려주기도 한다.(오른쪽 노란색 삼각형이 warning표시 라고 생각하면 된다)


Swift에서 사용되는 문법에 대해 알아보자.

일단 캡처된 사진을 봐 보자.




가운데 화면의 왼쪽은 앱의 화면이, 오른쪽엔 코드가 있다.
xcode에서 버튼을 생성한 뒤 버튼을 클릭하고 드래그 하여 코드까지 끌어오면 코드 상에 버튼에 대한 코드가 생성된다! (정말 획기적인듯) 잘 보이진 않겠지만 19라인을 보면 19라인을 알려주는 숫자 19 왼쪽에 조그마난 동그라미가 있다. 마우스를 저 위로 올리면 왼쪽 화면 처럼 버튼이 파란색으로 바뀌어 표시된다(해당 코드는 버튼에 관한 코드임을 알려주게 된다)

개발자의 편의성을 높여준 xcode의 센스를 엿볼 수 있다.

문법에 대해 알아보자. 처음으로 Swift에선 모든 변수와 클래스 등이 반드시 초기화 되어야 한다.
var로 생성된 변수가 초기화 되지 않으면 xcode에서 에러 표시를 해준다.

또한 var와 let의 차이는 바로 변수와 상수의 차이이다.(스탠포드 교수는 let이란 표현을 아주 좋아했다)

또한 weak이라는 표현은 바로 메모리관리에 관한 문법이었는데, weak으로 선언이 된다면 ARC를 이용, 메모리 관리에 힘 쓸 필요가 없다고 한다. (스위프트 자체가 메모리 관리에 민감한듯 하다)  

Swift에서 선언된 변수, 상수는 타입을 가지고 있을 것이고 함수 또한 리턴 타입에 대해 정의 될 것이다.
하지만 스위프트에선 타입을 지정하지 않고서도 해당 타입을 유추해 자동으로 인식하는 기능이 있다.

바로 Optional이라는 것인데 해당 값이 nil일수도 타입을 가지고 있을 수도 있다는 것이다.
(option키를 활용하여 타입이 어떻게 정의되어 있는지 알아 볼 수 있다)

어떤 변수 hi에 ?가 붙어 있다면 optional로 정의가 되어 있어 정확한 타입을 모르겠다는 것이다.
하지만 변수에 hi!처럼 느낌표를 붙이면 개발자가 이 값에는 타입이 있다! 라고 알려주는 것이다.
하지만 실행중 크래쉬가 일어날 가능성은 감수해야 한다.


※ 해당 글은 애플에서 iTunes로 제공되는 스탠포드의 Swift강의를 정리한 것입니다. 
강의가 영어로 진행되며 Swift자체를 공부중인 내용을 정리한 것이니 틀린 내용이 있으면 지적해 주시기 바랍니다. 틀린 내용이 있다면 앞으로 공부 하면서 틀린 내용을 자체적으로 꾸준히 수정 할 예정입니다.


'Programing > Swift' 카테고리의 다른 글

Swift 스탠포드 강의 #01  (0) 2015.07.16
Posted by thread1525

댓글을 달아 주세요


블로그 이미지
1525번 thread 입니다.
thread1525

공지사항

Yesterday4
Today0
Total6,281

달력

 « |  » 2019.11
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

최근에 달린 댓글

최근에 받은 트랙백

글 보관함