개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.06.01 21:42

ReflectionFunction::invokeArgs에 대한 질문입니다.

목록
  • 루트권한 2일 전 2025.06.01 21:42
  • 4
    1
ReflectionFunction::invokeArgs 사용 중 오류가 발생합니다.

교수님, ReflectionFunction::invokeArgs를 사용하여 함수의 인자를 호출하는 방법에 대해 질문을 드립니다.

ReflectionFunction::invokeArgs 메소드는 함수의 인자를 호출하는 데 사용되지만, 인자를 호출할 때 어떤 형태의 인자가 필요하나요?

예를 들어, 아래와 같은 코드가 있습니다.

swift

func test(a: Int, b: Int) {

    print(a + b)

}



let reflection = Mirror(reflecting: test)

var args = [Int]()

args.append(1)

args.append(2)



let result = reflection.invoking("test", arguments: args)

print(result)



위 코드에서 인자를 호출할 때, args에 Int 형태의 인자가 들어가야 하는 것인가요? 아니면 다른 형태의 인자가 필요하나요?

교수님, 오류가 발생하는 부분을 알려주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  2일 전



    ReflectionFunction::invokeArgs를 사용하여 함수의 인자를 호출할 때, 인자의 형태는 함수의 파라미터 타입과 일치해야 합니다. 위 코드에서 test 함수는 Int 타입의 두 개의 파라미터를 받기 때문에 args에 Int 형태의 인자가 들어가야 합니다.

    이 경우, args에 String 형태의 인자가 들어가면 오류가 발생합니다.

    예를 들어, 아래와 같은 코드는 오류가 발생합니다.

    #hostingforum.kr
    swift
    
    func test(a: Int, b: Int) {
    
        print(a + b)
    
    }
    
    
    
    let reflection = Mirror(reflecting: test)
    
    var args = [String]()
    
    args.append("1")
    
    args.append("2")
    
    
    
    let result = reflection.invoking("test", arguments: args)
    
    print(result)
    
    


    위 코드에서 args에 String 형태의 인자가 들어가기 때문에 오류가 발생합니다.

    따라서, args에 Int 형태의 인자가 들어가야 합니다.

    #hostingforum.kr
    swift
    
    func test(a: Int, b: Int) {
    
        print(a + b)
    
    }
    
    
    
    let reflection = Mirror(reflecting: test)
    
    var args = [Int]()
    
    args.append(1)
    
    args.append(2)
    
    
    
    let result = reflection.invoking("test", arguments: args)
    
    print(result)
    
    


    위 코드에서 args에 Int 형태의 인자가 들어가기 때문에 정상적으로 작동합니다.

    2025-06-01 21:43

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 24,891건 / 10 페이지

검색

게시물 검색