네이버 부스트코스를 통해 기본적인 앱들을 제작해본 경험이 있지만 이책을 통해 기초부터 다시 구체적으로 알고싶은 사항들이 있어 공부를 하고 있습니다.
이책의 요약 부분은 지금 내가 부족한 부분과 swift문법 및 앱제작에 있어 모르던 부분만 요약해서 정리하기 위해 만들었습니다.
iboutlet,ibaction을 통한 hello world 앱 제작
@IBOutlet은 객체의 속성을 제어할 떄 사용되고 IBAction은 특정 이벤트 및 정해진 작업을 실행하기 위해 사용된다.
(_ sender: UIButton) 버튼객체에서 이벤트가 발생했을 떄 해당 액션함수를 실행시킬 것으로 UIButton클래스 타입을 선택한다.
변수앞에 weak의 의미?
아웃렛 변수를 추가할 때 strong/weak로 나눌 수 있다. weak를 사용 시 변수 앞에 weak가 추가된다.
strong으로 선언된 변수는 다른곳에서 참조할 경우 메모리에서 제거되지 않지만 weak로 선언된 변수는 다른곳에서 참조하고 있더라도 시스템이 임의적으로 메모리에서 제거할 수 있다. 메모리 관리차원에서 weak를 사용하면 메모리 누수가 줄어든다.
옵셔널 변수, 강제 언래핑: 옵셔널은 ?를 변수선언 뒤에 붙히는 swift에 있는 개념이다. 옵셔널은 어떤 값이 존재하지 않다는 것을 나타낼 때 사용하는 개념이다. 변수가 nil이거나 값의 존재 여부를 알 수 없다는 것을 의미함.
swift에서는 변수 선언시 반드시 nil이 아닌 값을 할당해야한다. 하지만 옵셔널을 통해 값이 없다는 것을 알릴 수 있다. 옵셔널로 선언된 변수는 옵셔널에 의해 래핑 되었다고 한다. 출력시 !를 사용 해 강제 언래핑 하여 값에 접근해야 한다.
반면, 옵셔널 변수는 암묵적인 언래핑이 되도록 선언가능하다. 출력 시 강제언래핑을 사용하지 않고 출력을 하기 위해서 변수 선언시 변수 뒤에 !를 붙혀 암묵적인 언래핑이된 옵셔널 변수로 선언 가능하다.
self의 의미?
self는 구조체나 클래스 자신을 가르킬 때 사용된다.