画像のサイズを変更するためのカテゴリを提供するチュートリアルに従おうとしています。しかし、コードは次の行でクラッシュしています。
CGSize mainImageSize = self.size;
ブレークポイントのデバッガーは次のように述べています。
size CGSize (width=142, height=142)
mainImageSize CGSize (width=2.121995791459338E-314, height=2.121995791459338E-314)
率直に言って、私は上記のことをどうすればよいかわかりません:
カテゴリのソース ファイルは次のとおりです。
-(UIImage *) createThumbnailToFillSize:(CGSize)size
{
CGSize mainImageSize = self.size;//LINE WHERE IT CRASHES
UIImage *thumb;
CGFloat widthScaler = size.width / mainImageSize.width;
CGFloat heightScaler = size.height / mainImageSize.height;
CGSize repositionedMainImageSize = mainImageSize;
CGFloat scaleFactor;
// Determine if we should shrink based on width or hight
if(widthScaler > heightScaler)
{
// calculate based on width scaler
scaleFactor = widthScaler;
repositionedMainImageSize.height = ceil(size.height / scaleFactor);
}
else {
// calculate based on height scaler
scaleFactor = heightScaler;
repositionedMainImageSize.width = ceil(size.width / heightScaler);
}
UIGraphicsBeginImageContext(size);
CGFloat xInc = ((repositionedMainImageSize.width-mainImageSize.width) / 2.f) *scaleFactor;
CGFloat yInc = ((repositionedMainImageSize.height-mainImageSize.height) / 2.f) *scaleFactor;
[self drawInRect:CGRectMake(xInc, yInc, mainImageSize.width * scaleFactor, mainImageSize.height * scaleFactor)];
thumb = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return thumb;
}
そして、これがそれがどのように呼ばれているかです。
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
UIImage *chosenImage = info[UIImagePickerControllerEditedImage];
//thumbnail stuff
CGFloat side = 71.f;//was 71 in Kuh book
side *=[[UIScreen mainScreen] scale];
UIImage *thumbnail = [chosenImage createThumbnailToFillSize:CGSizeMake(side, side)];
self.imageView.image = thumbnail;
クラッシュの原因についての提案をいただければ幸いです。