Objective c IOS-DrawRect图像

Objective c IOS-DrawRect图像,objective-c,ios,uilabel,drawrect,Objective C,Ios,Uilabel,Drawrect,我有一个UIImage,我想在UILabel中绘制它,从json加载图像 我想在画之前先保存图像 我已加载图像,但我没有绘制它,我想我保存了图像问题 这是我的密码: - (void)createDirectory { NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [pa

我有一个
UIImage
,我想在
UILabel
中绘制它,从json加载图像

我想在画之前先保存图像

我已加载图像,但我没有绘制它,我想我保存了图像问题

这是我的密码:

- (void)createDirectory {

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    itemsFilename = [[NSString alloc] initWithString:[documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"listEPG"]]];
    thumbsFilename = [[NSString alloc] initWithString:[documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"listImage"]]];
    _itemsNames = [[NSMutableArray alloc] initWithContentsOfFile:itemsFilename];
    images = [[NSMutableDictionary alloc] initWithContentsOfFile:thumbsFilename];
    imagesOperations = [[NSOperationQueue alloc] init];
    [imagesOperations setMaxConcurrentOperationCount:1];

    if (images == nil) {
        images = [[NSMutableDictionary alloc] init];
    }
}


- (void)drawRect:(CGRect)rect {

    for(int i = 0;i<10;i++) {
        NSString* imageUrl= [NSString stringWithFormat:@"%@",[[[data objectAtIndex:i] objectForKey:@"Channel"] objectForKey:@"Image"]];

        UIImage *imgLogo = [self setImage:imageUrl];
        NSLog(@"%@",imgLogo);
        [imgLogo drawInRect:CGRectMake(0,y_lblLogo,70.f,30.f)];
    }
}

- (UIImage *) setImage:(NSString *)theUrl {
    //NSLog(@"%@",theUrl);
    id userImage = [images objectForKey:theUrl];

    if(userImage == nil) {
        [images setObject:[NSNull null] forKey:theUrl];
        GetImage *op = [[GetImage alloc] initWithTheURL:theUrl target:self action:@selector(getImage:)];
        NSLog(@"%@",op);        //[imagesOperations addOperation:op];
    } else if ([userImage isKindOfClass:[NSData class]]) {
        return [UIImage imageWithData:userImage];
    }
    return [UIImage imageNamed:@""];
}

- (void) getImage:(NSDictionary *)info {

    NSString* url = [info objectForKey:@"url"];
    id image = [info objectForKey:@"image"];
    [images setObject:UIImageJPEGRepresentation(image, 0.5) forKey:url];
    [images writeToFile:thumbsFilename atomically:YES];
    NSMutableSet *filepathsSet = [[NSUserDefaults standardUserDefaults] objectForKey:@"filePathLogoChannel"];
    [filepathsSet setByAddingObject:thumbsFilename];
    [[NSUserDefaults standardUserDefaults] setObject:filepathsSet forKey:@"filePathLogoChannel"];
}
-(void)创建目录{
NSArray*Path=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,是);
NSString*documentsDirectory=[paths objectAtIndex:0];
itemsFilename=[[NSString alloc]initWithString:[documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@“ListPG”]];
thumbsFilename=[[NSString alloc]initWithString:[documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@“listImage”]];
_itemsNames=[[NSMutableArray alloc]initWithContentsOfFile:itemsFilename];
images=[[NSMutableDictionary alloc]initWithContentsOfFile:thumbsFilename];
imagesOperations=[[NSOperationQueue alloc]init];
[图像操作设置MaxConcurrentOperationCount:1];
如果(图像==nil){
images=[[NSMutableDictionary alloc]init];
}
}
-(void)drawRect:(CGRect)rect{
对于(inti=0;i变化

id image = [info objectForKey:@"image"];
[images setObject:UIImageJPEGRepresentation(image, 0.5) forKey:url];
[images writeToFile:thumbsFilename atomically:YES];


您面临的问题到底是什么?是您无法保存图像吗?如果是崩溃消息,请发布堆栈跟踪。您可以检查我的代码吗,我没有绘制它,可能是图像保存错误。因此,我对您的问题的理解是,您在绘制图像时遇到问题,并且您觉得问题在于将图像保存到光盘上ht?[info objectForKey:@“image”]的数据类型是什么?它本身是UIImage吗?是否可以在行id image=[info objectForKey:@“image”]之后使用NSLog语句作为NSLog(@“%@,[[image class]description])打印进行检查;我在行id图像后粘贴了NSLog…,函数getImage没有调用,我不知道为什么?我将再次检查我的codeNSLog(@“%@,[[image class]description])返回UIImage遗憾的是,我没有绘制图像。现在发生了什么?它是否正确保存到光盘?您可以检查它吗?如果没有看到完整的项目,很难说。现在,我已经绘制了图像,但第一次加载uiscrollview时,图像没有显示,我认为GetImage*op=[[GetImage alloc]初始化URL:theUrl目标:自我操作:@selector(getImage:)];有问题吗?它不返回uiimage?
UIImage *image = (UIImage *)[info objectForKey:@"image"];
NSData *imageData = UIImageJPEGRepresentation(image, 0.5);
[imageData writeToFile:thumbsFilename atomically:YES];