2013-04-11 1 views
0

UIImage를 앱 대리인에게 저장하려고합니다. UIViewController를 처음으로로드하면 UIImage가 반환됩니다 (첫 번째 스크린 샷 참조).UIImage가 NSNumber가됩니다.

도와주세요! 거의 2 일 동안 여기에 갇혀 있습니다. 내가 그 컨트롤러로 다시 리디렉션 할 때

enter image description here

는하지만,있는 UIImage가의 NSNumber된다. 이 문제는 가장 쉽게 디버거를 사용하여 해결

UIGraphicsBeginImageContextWithOptions(self.imageView.frame.size,YES, 0.0); 
[self.imageView.layer renderInContext:UIGraphicsGetCurrentContext()]; 

UIImage *resultingImage = UIGraphicsGetImageFromCurrentImageContext(); 

UIGraphicsEndImageContext(); 

del.getImage = resultingImage; 
+0

'getImage = retrievedImage'? 그것은'image = retrievedImage'가 아니어야합니까? –

+2

정말로 "getImage"속성을 호출하면 안됩니다. xcode가 getter로 실수했을 수 있습니다. 그 이름을 "myImage"또는 그와 비슷한 것으로 변경해보고, 그것이 작동하는지 확인하십시오. – Odrakir

+0

NSZombies를 활성화 한 상태에서 코드를 실행 해보십시오. IntendedType의 객체가 TotallyUnrelatedType으로 표시되면 일반적으로 해당 객체의 메모리가 이미 해제되었음을 의미합니다. – Kreiri

답변

0

을 다음과 같이 I 앱의 대리인에게 나는 이미지를 설정 컨트롤러를 떠나기 전에 enter image description here

을 (두 번째 스크린 샷 참조). 먼저, 코멘트가 말한대로 myImage라고 말하기 위해 속성 이름을 변경하십시오. 그런 다음 UIViewController 클래스에서 자신 만의 setter를 제공하십시오.

- (void)setMyImage:(UIImage *)myImage 
{ 
    NSLog(@"Image class: %@", NSStringFromClass([myImage class])); 
    if([myImage isKindOfClass:[NSNumber class]]) { 
     NSLog(@"YIKES: a number!"); 
    } 
    _myImage = myImage; // assumes ARC 
} 

두 번째 NSLog 또는 두 가지 모두에 중단 점을 넣으십시오. 두 번째 중단 점에 도달하면 호출 스택을 살펴보고 누가 설정 중인지 알아냅니다.