iOS12 앱 개발 퍼펙트 가이드

iOS12 앱 개발 퍼펙트 가이드

(7개의 수강평)

144명의 수강생
77,000원
지식공유자 · iOS Developer
85회 수업· 총 19시간 27분수업
평생 무제한 시청
수료증 발급 강의
수강 난이도 '입문, 초급, 중급'
신의연 프로필

클로저 타입 질문입니다. 신의연 11일 전

강의를 듣다가 궁금한게 생겨서 질문 드립니다.

아래 질문에 답변 해주신것과 다르게 filterStringClosure 함수 선언문에서 closure라는 파라미터는  '클로저 타입'이 아닌, 스트링을 받아 bool을 반환하는 단순 '함수 타입'인걸로 이해를 했습니다. (질문1. 클로저 타입이란게 정의 되어 있는건 가요?)

때문에

func findA(str:String)->Bool{

    if str.first?.description == "A"{

        return true

    }

    else {

              return false

     }

}

와 같이 클로저가 아닌 일반 함수도 매개변수로 들어갈수 있는데 굳이 (질문 2. 타입 정도만 생략된 클로저(클로저를 쓰는 이유는 축약때문에 쓰는 것 같은데 함수와 코드 길이가 비슷할 것 같아서)를 사용하는 이유)와 (질문 3.극한으로 축약되지 않은 클로저와 일반함수 중 현업에선 어떤걸 더 사용하는지 궁금합니다.) (질문 4. 또 클로저를 사용했을때 메모리나 속도 차이가 있는지도 궁금합니다.)

let add: (Int, Int) -> Int = {$0 + $1} 수준의 축약이 아닌 이상 현직 개발자들이 func 대신 closure를 선호하는 이유가 궁금합니다. 그냥 개인 코딩 스타일이라고 봐도 될까요?

1
김승원 프로필

강의를 거의 끝나가는 시점에 궁금한 점이 있습니다. 김승원 1달 전

강사님 말씀대로 정말 좋은 강의인것 같습니다.

거의 모르던 저에게 조금이나마 방향을 갖게 해주었던 강의였던 것 같습니다. 다만 아쉬운 점이 유지보수를 위해 폴더관리 하는법, MVVM 패턴 같은 강의도 있었으면 좋겠습니다.. ㅠㅠ

1
김승원 프로필

라벨과 버튼을 뷰로 묶어서 hight사이즈 조절이 안되요 ㅠㅠ 김승원 1달 전

영상에서는 상하 좌우 0 0 0 0 으로 하는데 

저도 따라서 치고 적용시켰는데

standard로 바뀌면서 0이 적용이 안됩니다 ㅠㅠ 그리고 나서 다시 사이즈 바꾸러 들어가보면 원래 처음에 있던 기본값으로 설정되어있네요 왜그러나요 ㅠㅠ xcode버전은 11.3입니다 

1
김승원 프로필

강의를 듣기전 궁금한 것이 있습니다. 김승원 1달 전

이 강의를 다 듣고나서 오토레이아웃을 들어야 하나요? 아니면 이강의를 들으면서 같이 들어도되는건가요? 궁금해요!!

1
Apensia (dhstar914) 프로필

안녕하세요 시뮬레이터 질문 있습니다. Apensia (dhstar914) 3달 전

안녕하세요. 시뮬레이터로 play하고자 하는데 Generic iOS Device로만 연결이 되어 있어서 

"A build only device cannot be used to run this target" 에러가 뜹니다. 혹시 어떻게 해결하는지 아시나요?ㅠ

4
김동현 Kim 프로필

UISearchController 표시 관련 질문 드립니다. 김동현 Kim 3달 전

 override func viewDidLoad() {

에서 다음과 같이 호출하면 정상적으로 보이는데

let searchVC = UISearchController(searchResultsController: nil)

        searchVC.searchResultsUpdater = self

동적으로 보여주기 위해서 navigation bar item에서 action으로 호출해서 추가하려고 하면 화면에 콘트롤이 추가가 안 됩니다.

@IBAction func actionShowSearch(_ sender: Any) {

        let searchVC = UISearchController(searchResultsController: nil)

        self.navigationItem.searchController = searchVC

    }

혹시 viewdidload할 때와 다른 부분이 있을까요?

3
보채지마오 프로필

optional 변수 질문 있습니다. 보채지마오 3달 전

var name: String?

var nick: String!

옵셔널를 ?, ! 둘다 쓰더라고요.

!: 강제 언랩핑 기호로 알고 있었는데...

변수선언에서 ?, ! 이 둘의 차이점은 뭘까요?

2
습득자 프로필

질문드립니다...ㅠ 습득자 5달 전

안녕하세요. 공부도중 저만의 앱을 만들어보고 싶어서 강의 내용 번외로 질문을 하나 드려도 될련지요?

혹시 앱내에서 카메라 기능을 원하는 시간대에만  사용할 수 있고 나머지 시간에는 사용하지 못하도록 하려면 어떤 부분을 건드려야하는지 약간의 조언좀 해주시면 감사하겠습니다ㅠ

1
습득자 프로필

질문입니다. 습득자 5달 전

self.presentingViewController?.dismiss(animated: true)

위 식에서 presentingViewController 뒤에 ? 을붙여 옵셔널 타입으로 왜 변경해서 써야하는지 궁금증이 있습니다!

1
습득자 프로필

질문입니다 습득자 5달 전

안녕하세요 수강생입니다.

옵셔널 바인딩 할 때 if let 변수명 = (nil값대입) 시 false를 반환하는 이유가

변수나 상수는 nil를 넣을 수 없는데 넣으려고해서 값이 안들어간 상태라 false가 나오는 원리가 맞나요?

guard문을 공부하다가  질문이 생겼습니다.

왜 옵셔널 바인딩 할 시 if var 변수명으로 쓰지않고 if let 변수명 으로만 바인딩하나요?

또 guard let 변수명 = 조건 else{

}  대신

guard var 변수명 = 조건 else{

}

이런식으로 let대신 var를 쓰지 않는 이유가 궁금합니다.

1
습득자 프로필

안녕하세요 질문드립니다. 습득자 5달 전

반갑습니다. 열심히 수강중인 학생입니다.

class SomeClass{

  var first = 10

  var second = 20

  

 // var total1 = first + second    불가능  func으로 해야함

  

  func total2() -> Int {

  return first + second

}

 

  var total : Int {

    get{                             // get만 있을 경우 get {} 생략 가능

      return first + second

    }

 

  }

}

 

var someClass = SomeClass()

var someClass1 = SomeClass.init()

 

위 부분에서

var someClass = SomeClass()

var someClass1 = SomeClass.init()

위에 두줄이 같은 의미인가요? 인스턴스 생성한다는?

 

 

1
습득자 프로필

계산 프로퍼티 질문입니다. 습득자 5달 전

안녕하세요. 강의 잘 듣고있습니다.

질문드리겠습니다.

계산 프로퍼티는 틀이 기본적으로

var computedP : Int {

}  이렇잖아요?

근데 { }  이부분이 어디서 유래되어서 나온 틀인지 궁급합니다.

함수처럼 안에 코드를 작성하기때문에 {}를 사용하나요? 

인터넷에서 검색해보았지만,

스위프트에서 계산프로퍼티 기본 틀을

var computedP : Int {

}   이런식이다 라고 딱 명확하게 명시해주는 글을 보지 못해서 헷갈립니다. 

 

또 다른 질문이 있는데

왜 

 var first = 10

  var second = 20

  

 // var total1 = first + second    불가능  func으로 해야함

클래스 안에서  주석처리한 부분처럼 작성이 안된다는건 이해했는데

어떤 이유에서 안되는지 궁금합니다.

왜 계산프로퍼티나 함수안에서만 가능한건가요? 

 

1
습득자 프로필

클로저 질문입니다. 습득자 5달 전

안녕하세요 공부하다 질문드립니다.

closure : (String)  -> Bool

 

여기서 closure는 매개변수명이고, (String)-> Bool이 매개변수타입이잖아요?

근데 타입에는 String, Int , Doble 타입 등이 올수 있는데

 

(String) -> Bool 이란 타입이라고 이해했는데 맞는지요?

또 , 왜 (String) -> Bool 이 클로져 타입인지 모르겠습니다.

 

클로져 타입의 기본틀은 { ( ) -> type in code }

이렇게 알고있는데

어째서 (String) -> Bool 이 부분이 클로져라고하는건가요?

1
습득자 프로필

질문이있습니다. 습득자 5달 전

    df.dateFormat = "mm"

실습중 이부분에서 mm 대신 yy로 바꾸보았는데

사진 첨부한것 처럼 70:01:02 이런식으로 나옵니다 왜 년도나 시간 yy,hh 는 00이 안나오는건가요?

스타트 버튼 누른후 1시간이 지나거나 1년이 지나야    00에서 바껴야하는거아닌가요?

1
김동현 Kim 프로필

table에서 RatingView의 변경을 막는 방법에 대해서 질문 드립니다. 김동현 Kim 6달 전

#1 RatingView에 편집 가능하다 아니다 의 bool 변수를 두고 tableview cell에 해당 변수를 set하는 방식

 

#2 RatingView를  버튼 동작을 제외하고 base로 만든다음에

tableview Cell엔 해당 base class를 쓰고 detail에선 편집이 가능한 아들 클래스를 쓴다 

 

정도가 가능할 것 같은데 혹시 다른 추천 방법이 있을까요?

 

3
지식공유자 되기
많은 사람들에게 배움의 기회를 주고,
경제적 보상을 받아보세요.
지식공유참여
기업 교육을 위한 인프런
“인프런 비즈니스” 를 통해 모든 팀원이 인프런의 강의들을
자유롭게 학습하는 환경을 제공하세요.
인프런 비즈니스