iPhone : nsinvocation이 인수의 참조를 변경합니까?
-
19-09-2019 - |
문제
사진을 웹 사이트에 업로드하기 위해 nsinvocation을 설정하려고합니다. 나는 이것을하고있다 :
- nsinvocation 객체를 설정하십시오
- 다른 인수와 함께 NSInvocation 객체에 uiimage*를 NSInvocation 객체에 추가하십시오.
- 필요할 때 nsinvocation을 호출하십시오
- nsinvocation을 호출 할 때 호출 된 함수는 uiimage에 액세스 할 수 없습니다. nsinvalidargumentexception을 얻습니다.
잠시 파고 들면 NSInvocation 객체에 대한 인수로 UIIMAGE를 추가 한 다음 다시 가져 오려고 시도한 것 같습니다 ... 다른 메모리 주소가 반환되었습니다! 이것은 정상입니까?
//먼저 "A"라는 메모리 주소가있는 유효한 uiimage "imgholder"가 있습니다.
nsinVocation *myInvocation = [nsinvocation revocationWithOdSignature : ...
MyInvocation setArgument : Imgholder atindex : 5];
//이제 이상한 부분 ...
uiimage *checkimg;
myInvocation getArgument : & CheckImg atindex : 12];
//CheckIMG에는 "B"의 메모리 주소가 있습니다!
CheckIMG로 작업하려고하면 다양한 예외를 얻을 수 있습니다.
무슨 일이 일어나고 있는지 아이디어가 있습니까? Checkimg의 메모리 주소가 Imgholder의 메모리 주소와 동일하지 않아야합니까?
해결책
[myInvocation setArgument:imgHolder atIndex:5];
Imgholder가 uiimage*인 경우 Imgholder가 아닌 Imgholder를 통과해야합니다.
제휴하지 않습니다 StackOverflow