2012-04-14 7 views
7

Ich versuche, eine Anwendung zu entwickeln, die Bilder (von einer Fotografie Website) herunterladen und erstellen Sie eine ALAsset für jedes Bild und dann unter einer neuen ALAsssetsGroup platzieren.So erstellen Sie eine neue ALAsset von heruntergeladenen Bild

Ich bin in der Lage, ein neues Album (ALAsetsGroup) zu erstellen und Daten von der Website herunterladen. Jedoch bin ich ein bisschen fest, wie man das neue ALAsset erstellt.

ich versucht habe, ist wie folgt

  ALAsset *asset = [[[ALAsset alloc] init] autorelease]; 
      NSDictionary *metadata = [NSDictionary dictionaryWithObjectsAndKeys:p.id, @"id", p.thumbnail_url, @"thumbnail_url", p.photo_url, @"photo_url", nil]; 
      [asset setImageData:data metadata:metadata completionBlock:^(NSURL *assetURL, NSError *error) { 
       ESLog(@"Asset %@ created error:%@", assetURL, error); 
       [group addAsset:asset]; 
      }]; 

aber ich Abzüge bekommen, wo sowohl die assetURL und Fehler leer.

2012-04-15 02:58:06.850 XXXXXX.com[5966:c607] Asset (null) created error:(null) 

Es wäre toll, wenn jemand vorschlagen kann, wie ich eine neue Nutzungsart in einem Album erstellen kann

Antwort

6

man kann einen neuen ALAsset so erstellen. Was Sie tun müssen, ist, dass Sie Bilddaten an die Photo-Bibliothek speichern unter Anwendung des Verfahrens:

- (void)writeImageDataToSavedPhotosAlbum:(NSData *)imageData metadata:(NSDictionary *)metadata completionBlock:(ALAssetsLibraryWriteImageCompletionBlock)completionBlock 

Der Abschluss Block die NSURL für die neue angelegten Anlage zurück. Wenn Sie die Methode

- (void)assetForURL:(NSURL *)assetURL resultBlock:(ALAssetsLibraryAssetForURLResultBlock)resultBlock failureBlock:(ALAssetsLibraryAccessFailureBlock)failureBlock 

mit dem NSURL verwenden, erhalten Sie die ALAsset-Instanz des neu erstellten Assets zurück.

Prost.

Hendrik

+0

Danke, das ist, wie ich es tun endete. – mithuntnt

1

können Sie verwenden, um die UIImageWriteToSavedPhotosAlbum Funktion, um die UIImage auf die Roll der Kamera zu speichern.

void UIImageWriteToSavedPhotosAlbum (
    UIImage *image, 
    id  completionTarget, 
    SEL  completionSelector, 
    void  *contextInfo 
); 

Es wird here beschrieben.

Dann können Sie es aus der Asset-Bibliothek abholen.

1

einfacher Auch den folgenden Code verwenden:

//Save to photo album 
    UIImage *img = [[[UIImage alloc] initWithData:imageData] autorelease]; 
    ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init]; 
    [library writeImageToSavedPhotosAlbum:img.CGImage 
           metadata:[info objectForKey:UIImagePickerControllerMediaMetadata] 
          completionBlock:^(NSURL *assetURL, NSError *error) { 
           NSLog(@"assetURL %@", assetURL); 
          }]; 
+0

Dies ist genau das, was ich mache, aber AssetURL ist null ... –

Verwandte Themen