iOS 프로그래밍 실무 (2)

김제형·2025년 3월 27일

argument VS parameter

  • argument = 값을 저장할 수 있는 변수
  • parameter = 실질적으로 코드 안에서 사용되는 값

매개변수명

func add( x : Int , y : Int ) -> Int {
    return x+y
}
add(10 , 20) //에러

add( x : 10, y : 20 ) //30
  • 함수를 사용하고 값을 넣을 때 매개변수 명을 생략하게 되면 오류가 나게 된다.

외부 VS 내부 매개변수(parameter)

func add( A x : Int , B y : Int ) -> Int{
}
  • A, B는 외부 매개변수명으로 함수 외부에서 사용하며 paramter Label 이라고 불린다.

  • x, y는 내부 매개변수 명으로 함수 내부에서 사용되며 parameter Label 이라고 불린다.

외부 매개변수명 생략

  • _ (언더스코어)를 사용하면 외부 매개변수 명을 생략할 수 있다.
func add( xx x : Int , _ y : Int ) -> Int{
}
print(add(xx : 5 , 6))

외부 매개변수명을 생략하면 6을 사용할때 앞에 매개변수명을 명명하지 않아도 되게 된다.

함수의 자료형 알아보기

  • 함수의 자료형을 찾고자 할땐 type(of: )를 사용하고 return 값까지 출력되게 된다.

함수명 알아보기

  • 함수 내부의 return 전에 print(#funtion)을 사용하게 되면 함수명을 알 수 있다.
func add(a x : Int , b y : Int) -> {
	print(#funtion)
	return x + y
}

결과

add(a:b:)
  • 외부 매개변수 명과 콜론이 나오며 콤마( , )는 나오지 않는다.
    생략이 될 경우 _(언더스코어)로 나오게 된다.
  <ex>
add(a:b:)
add(_:b:)
add(a:_:)
add(_:_:)

인스턴스 초기화

designated initializer{}

  • 모든 initializer를 초기화 하는 생성자

생성자

class Man {
    var age : Int = 1
    var height : Double = 1.5
}
var KJH = Man()
KJH.age

Man()에서 ()를 하는 이유는 생성자를 호출하기 위해서이다.

함수 중첩 오류

  • 상속을 받은 후 부모와 자식 클래스에 같은 이름의 함수가 존재할 경우 아래와 같이 오류가 난다.
  • 그러므로 override 를 중첩된 display함수에 써주어 함수를 재정의 한다.
override func display() {

protocol

  • 클래스에서는 자식의 부모 클래스를 상속 받는다고 하지만 protocol은 상속이 아닌 체택 (adopt) 한다고 한다.
//class Man 이 Runable을 채택한 경우
protocol Runnable{
    var x : Int { get set }
    func run() //body를 만들면 오류가 난다.
}

class Man : Runnable{
    var x : Int = 1
    func run() {
        print("run")
    }
}

View controller 의 기본 코드 구조

  • 아래 코드는 View Controller의 기본 코드이다
import UIKit
// UIKit 프레임워크를 가져옵니다.
// UIKit은 iOS 앱의 사용자 인터페이스를 구축하는 데 필요한 모든 클래스와 기능을 제공합니다.
// 여기에는 버튼, 레이블, 텍스트 필드, 뷰 컨트롤러 등이 포함됩니다.

class ViewController: UIViewController {
    // ViewController 클래스 정의
    // UIViewController를 상속받아 화면의 생명주기를 관리하고, 화면에 표시될 콘텐츠를 설정합니다.
    // 이 클래스는 앱의 특정 화면을 담당하며, 화면 전환 및 사용자 인터페이스 요소와 상호작용합니다.

    override func viewDidLoad() {
        super.viewDidLoad()
        // viewDidLoad 메서드 재정의
        // 이 메서드는 뷰 컨트롤러의 뷰가 메모리에 로드된 직후에 호출됩니다.
        // 주로 초기화 작업, 데이터 로드, UI 구성 등을 수행하는 데 사용됩니다.
        
        // super.viewDidLoad()
        // 부모 클래스인 UIViewController의 viewDidLoad 메서드를 호출합니다.
        // 부모 클래스에서 정의된 기본 동작을 실행하고, 이후에 추가 작업을 수행할 수 있도록 합니다.
        
        // Do any additional setup after loading the view.
        // 이 주석은 개발자가 추가적인 초기화 작업을 수행하도록 안내하는 역할을 합니다.
        // 예를 들어, 뷰의 배경색을 설정하거나 버튼 및 레이블을 추가하는 코드 등을 작성할 수 있습니다.
    }
}
profile
개발자 지망생

0개의 댓글