현재 코드를 ARC로 마이그레이션하려고하면 NSString을 NSInvocation 인수로 전달할 때마다 오류가 발생합니다.NSInvocation 및 ARC (Automatic Reference Counting)
예 :
NSInvocation inv = ...;
NSString *one = @"Hello World!";
[inv setArgument:&one atIndex:2];
오류가 나는 팩터를 사용할 때 발생 -> 편집 메뉴에서 오브젝티브 C ARC 옵션으로 변환합니다. 텍스트는 "NSInvocation의 setArgument는 __unsafe_retained 이외의 소유권을 가진 객체와 함께 사용하는 것이 안전하지 않습니다."
어떻게이 문제를 해결할 수 있습니까?
이 작업은 가능하지만이 작업에서 메모리 처리에는 매우주의해야합니다. NSInvocation을 피할 수 있다면 더 이상 NSInvocation을 사용하지 않는 것이 좋습니다 ... –
OCMock을 사용하고 있으며 콜백 블록에 NSInvocation 개체를 전달합니다. 모든 매개 변수에서 __unsafe_unretained를 사용하지 않으면 ARC는 매우 불만을 갖습니다. 팁 (팁)에 감사드립니다, 신비한 충돌은 갔다! – phatmann