2016-08-01 27 views

Antwort

4

Um Dateien zu App-Erweiterung zur Verfügung stellen Sie Group Path verwenden müssen, wie App-Erweiterung nicht App-Dokumentordner zugreifen können, für die Sie folgen müssen diese Schritte,

  1. aktivieren App Gruppen aus Projekteinstellungen-> Fähigkeiten.
  2. Fügen Sie eine Gruppenerweiterung wie group.yourappid hinzu.
  3. Dann folgenden Code verwenden.

    NSString *docPath=[self groupPath]; 
    
    NSArray *contents=[[NSFileManager defaultManager] contentsOfDirectoryAtPath:docPath error:nil]; 
    
    NSMutableArray *images=[[NSMutableArray alloc] init]; 
    
        for(NSString *file in contents){ 
         if([[file pathExtension] isEqualToString:@"png"]){ 
          [images addObject:[docPath stringByAppendingPathComponent:file]]; 
         } 
        } 
    
    
    -(NSString *)groupPath{ 
        NSString *appGroupDirectoryPath = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:group.yourappid].path; 
    
        return appGroupDirectoryPath; 
    } 
    

Sie können wie pro Ihre Bilderweiterungen Sie generieren hinzufügen oder die Pfaderweiterung ändern.

Hinweis - Denken Sie daran, dass Sie die Bilder im Gruppenordner und nicht im Ordner "Dokumente" erstellen müssen, damit sie sowohl für die App als auch für die Erweiterung verfügbar sind.

Prost.

Swift 3 Update

let fileManager = FileManager.default 
let url = fileManager.containerURL(forSecurityApplicationGroupIdentifier: "YOUR_GROUP_ID")?.appendingPathComponent("logo.png") 

// Write to Group Container    
if !fileManager.fileExists(atPath: url.path) { 

    let image = UIImage(named: "name") 
    let imageData = UIImagePNGRepresentation(image!) 
    fileManager.createFile(atPath: url.path as String, contents: imageData, attributes: nil) 
} 

// Read from Group Container - (PushNotification attachment example)    
// Add the attachment from group directory to the notification content      
if let attachment = try? UNNotificationAttachment(identifier: "", url: url!) { 

    bestAttemptContent.attachments = [attachment] 

    // Serve the notification content 
    self.contentHandler!(self.bestAttemptContent!) 
} 
+0

Vielen Dank dieses total funktioniert! Jetzt muss ich alle Bilder in AppGroup // Dokumente/Ordner übertragen. –