Cavim3x5nunx5dbe30xi
LOGAN
  • 2016.5.7 03:01
  • 조회수 88
  • 답변수 1
Cavim3x5nunx5dbe30xi
LOGAN
  • 2016.5.7 03:01
  • 조회수 88
  • 답변수 1

var ratings : [Int] = nil

여기에서
왜 [] 이 붙는 건지?
어레이 타입으로 ratings를 만들거라 그런 것인가요?

그리고 []를 빼고 var ratings: Int = nil 로 했을 때 처음에는 에러가 없었으나, 나중에 if구문을 돌릴 때 에러가 나더라구요.

  • #iOS Swift입문
  • #Optional 3

1 답변

  • G3rlasealonpd5c2kica
    Demi
    • 2016.5.9 10:21

    1. []를 쓰는 이유

    var ratings : [Int] = nil에서 [Int]와 같이 []를 쓰는 이유는 ratings를 배열로 쓰기 때문입니다.

    2. var ratings: Int = nil에서 에러가 발생하는 이유

    var ratings: Int = nil만 써도 에러가 발생하는 게 정상입니다. nil로 초기화하려면 var ratings : Int? = nil과 같이 ?를 붙여줘야 하는데요.
    왜 처음에 에러가 발생하지 않았는지는 모르겠네요(제 경우, xcode version 7.3.1에서는 에러가 발생합니다).


    var ratings : Int? = nil
    
    if let theRatings = ratings{
        bookDescription += "has \(ratings!.count) ratings"
    }
    

    에서 에러가 발생하는 이유는 배열은 count를 멤버로 가지지만, Int타입은 count를 멤버로 가지지 않기 때문입니다.
    에러마크를 클릭해보시면 Value of type 'Int' has no memeber 'count'라는 에러 메세지를 확인하실 수 있습니다.

답변 쓰기

이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.