проблема с изображением iPhone - PullRequest
2 голосов
/ 21 февраля 2011

Прежде всего, извините за дерьмовое форматирование. Я не знаю, как отформатировать код здесь. У меня проблема с получением изображения из библиотеки фотографий. Я вставил свой код Пожалуйста, помогите мне. У меня эта проблема из многих дней.

здесь я сохраняю путь к изображению в базе данных, используя referenceURL. Это в

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
    NSURL *imageUrl = [info  valueForKey:UIImagePickerControllerReferenceURL];

    NSURL *imageUrl = [info  valueForKey:UIImagePickerControllerReferenceURL];
    ALAssetsLibrary *assetLibrary = [[ALAssetsLibrary alloc]init];
    ALAssetsLibraryAssetForURLResultBlock resultblock = ^(ALAsset *myasset)
    {
        NSLog(@"asset");
        CGImageRef iref = [myasset thumbnail];
        if(iref)
        {
            NSLog(@"ifref");
            UIImage *thethumbnail = [UIImage imageWithCGImage:iref];
            NSLog(@"the thumbnail %@",thethumbnail);
            [[self photo]setImage:thethumbnail];
            lpdel.imageurl = UIImageJPEGRepresentation (thethumbnail, 1);
        }
    };

    ALAssetsLibraryAccessFailureBlock failureblock = ^(NSError *myerror)
    {
        NSLog(@"failed");
        NSLog(@"cant get image -- %@",[myerror localizedDescription]);
    };

    if (imageUrl) {
        NSLog(@"if url");
        [assetLibrary assetForURL:imageUrl
                      resultBlock:resultblock
                     failureBlock:failureblock];

        //lpdel.imageurl =imageUrl;

        NSLog(@"the image string    %@",lpdel.imageurl);
        NSLog(@"lpdel.image%@",lpdel.imageurl);
        [picker dismissModalViewControllerAnimated:YES];
        [imageUrl release];
    }
    [picker dismissModalViewControllerAnimated:YES];
    [picker release]
}

Я храню imageURL в базе данных. Затем в другом View Controller я пытаюсь получить изображение, используя тот же URL, используя приведенный ниже код

  ALAssetsLibraryAssetForURLResultBlock resultblock = ^(ALAsset *myasset)
    {
        NSLog(@"asset");
        CGImageRef iref = [myasset thumbnail];
        if(iref)
        {
            NSLog(@"ifref");
            thethumbnail = [UIImage imageWithCGImage:iref];
            NSLog(@"the thumbnail to upload  %@",thethumbnail);
            [self uploadImage:UIImageJPEGRepresentation (thethumbnail, 1)];
            //[[self photo]setImage:thethumbnail];
        }
    };

    ALAssetsLibraryAccessFailureBlock failureblock = ^(NSError *myerror)
    {
        NSLog(@"failed");
        NSLog(@"cant get image -- %@",[myerror localizedDescription]);
    };

    if (image) 
    {
        NSLog(@"if url");
        ALAssetsLibrary *assetLibrary = [[[ALAssetsLibrary alloc]init]autorelease];
        NSLog(@"url");
        [assetLibrary assetForURL:image
                      resultBlock:resultblock
                     failureBlock:failureblock];
    }
NSLog(@"the thumbnail %@",thethumbnail);

В этот момент приложение завершает работу без сообщения об ошибке. Может кто-нибудь, пожалуйста, помогите мне в этом

1 Ответ

0 голосов
/ 21 февраля 2011

Я нашел решение.Это была проблема с последним nslog.Но мне нужно знать почему.переменная thethumbnail объявляется с областью видимости класса.Должен ли он что-нибудь делать с блоками

...