
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