Ios m可以在模拟器上工作,但不能在设备上工作

Ios m可以在模拟器上工作,但不能在设备上工作,ios,objective-c,uiimage,cgimageref,Ios,Objective C,Uiimage,Cgimageref,这是我第一次发帖,请耐心等待。我一直在搜索一个又一个网站,我似乎找不到任何解决这个问题的网站。如果有人能回答我,我会很高兴的 如果没有错的话,LeveScache.m去年被修改以适应ios 7,我想 代码如下,但是我收到了返回页面image.CGImage的EXC\u BAD\u访问权限 我把它改为return(\uu-bridge-CGImageRef)(pageImage),但现在我的页面显示为空白,即使它打印了正确的页面索引。请帮忙 CGImageRef)cachedImageForPag

这是我第一次发帖,请耐心等待。我一直在搜索一个又一个网站,我似乎找不到任何解决这个问题的网站。如果有人能回答我,我会很高兴的

如果没有错的话,LeveScache.m去年被修改以适应ios 7,我想

代码如下,但是我收到了
返回页面image.CGImage
EXC\u BAD\u访问权限

我把它改为
return(\uu-bridge-CGImageRef)(pageImage)
,但现在我的页面显示为空白,即使它打印了正确的页面索引。请帮忙

CGImageRef)cachedImageForPageIndex:(NSUInteger)pageIndex {
NSNumber *pageIndexNumber = [NSNumber numberWithInt:pageIndex];
UIImage *pageImage;
@synchronized (self.pageCache) {
    pageImage = [self.pageCache objectForKey:pageIndexNumber];
}
if (!pageImage) {
    CGImageRef pageCGImage = CGImageRetain([self imageForPageIndex:pageIndex]);

    if (pageCGImage) {

        pageImage = [UIImage imageWithCGImage:pageCGImage];            
        @synchronized (self.pageCache) {
            [self.pageCache setObject:pageImage forKey:pageIndexNumber];
        }
    }
}

//modified here
//return pageImage.CGImage;
return (__bridge CGImageRef)(pageImage);
}

简单地说,内容在模拟器上表现得非常完美,但在iPad上却是空白。

我终于解决了这个问题。我不知道这有多合适。但对于那些使用LeavesView的人来说。如果“return pageImage.CGImage”向您抛出“EXC_BAD_ACCESS”,您可以通过删除此行来解决此问题:

//CGImageRelease(image);
可在此函数“imageForPageIndex”中找到:

- (CGImageRef)imageForPageIndex:(NSUInteger)pageIndex {
if (CGSizeEqualToSize(self.pageSize, CGSizeZero))
    return NULL;

CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef context = CGBitmapContextCreate(NULL,
                                             self.pageSize.width,
                                             self.pageSize.height,
                                             8,                     /* bits per component*/
                                             self.pageSize.width * 4,   /* bytes per row */
                                             colorSpace,
                                             kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big);
CGColorSpaceRelease(colorSpace);
CGContextClipToRect(context, CGRectMake(0, 0, self.pageSize.width, self.pageSize.height));

[self.dataSource renderPageAtIndex:pageIndex inContext:context];

CGImageRef image = CGBitmapContextCreateImage(context);
CGContextRelease(context);

[UIImage imageWithCGImage:image];
//CGImageRelease(image);

return image;
}
请维护“cachedImageForPageIndex:”功能。如果您已更改,代码如下所示:

- (CGImageRef)cachedImageForPageIndex:(NSUInteger)pageIndex {
NSNumber *pageIndexNumber = [NSNumber numberWithInt:pageIndex];
UIImage *pageImage;
@synchronized (self.pageCache) {
    pageImage = [self.pageCache objectForKey:pageIndexNumber];
}
if (!pageImage) {
    CGImageRef pageCGImage = [self imageForPageIndex:pageIndex];
    if (pageCGImage) {
        pageImage = [UIImage imageWithCGImage:pageCGImage];
        @synchronized (self.pageCache) {
            [self.pageCache setObject:pageImage forKey:pageIndexNumber];
        }
    }
}
return pageImage.CGImage;
}