Ab iOS 8 habe ich mit " App Group Functionality " erfolgreich auf denselben Ordner zugegriffen. Ich erweitere die Antwort von @siejkowski.
Hinweis: Es funktioniert nur mit demselben Entwicklerkonto.
Dazu müssen Sie die folgenden Schritte ausführen.
- Aktivieren Sie zuerst "App-Gruppen" in Ihrem Entwicklerkonto.
- Bereitstellungsprofil erstellen. und benutze es.
Jetzt müssen Sie zwei Apps erstellen. Beispielname
- Demo_Share_One
- Demo_Share_Two
Jetzt kopieren wir Bilder von Demo_Share_One in den Freigabeordner, der standardmäßig erstellt wird, wenn Sie App-Gruppen aktivieren und die App ausführen. und greift über Demo_Share_Two auf alle diese Bilder zu .
Sie müssen den Gruppennamen übernehmen, der auf Ihr Entwicklerkonto festgelegt wurde group.filesharingdemo
.
Fügen Sie in beiden Apps die folgende Methode hinzu, um den relativen Pfad für die Freigabe der Ordner-URL zu erhalten.
- (NSString *) getSharedLocationPath:(NSString *)appGroupName {
NSFileManager *fileManager = [NSFileManager defaultManager];
NSURL *groupContainerURL = [fileManager containerURLForSecurityApplicationGroupIdentifier:appGroupName];
return [groupContainerURL relativePath];
}
Jetzt kopieren wir Bilder aus dem Bundle von Demo_Share_One
-(IBAction)writeImage:(id)sender
{
for (int i = 0; i<15; i++)
{
NSString *strSourcePath = [[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"hd%d",i+1] ofType:@"jpg"];
NSString *strDestinationPath = [[self getSharedLocationPath:@"group.filesharingdemo"] stringByAppendingPathComponent:[NSString stringWithFormat:@"hd%d",i+1]] ;
BOOL filewrite = [[NSFileManager defaultManager]copyItemAtPath:strSourcePath toPath:strDestinationPath error:nil];
if (filewrite)
NSLog(@"File write");
else
NSLog(@"can not write file");
}
}
Jetzt in Demo_Share_Two, um auf diese Bilder zuzugreifen
NSString *pathShared = [[self getSharedLocationPath:@"group.filesharingdemo"] stringByAppendingPathComponent:[NSString stringWithFormat:@"hd%d.jpg",number]];
NSLog(@"%@",pathShared);
imgView.image = [UIImage imageWithContentsOfFile:pathShared];
Und jetzt erhalten Sie alle Bilder, die Sie schreiben, von Demo_Share_One .
Also von nun an, wenn Sie diesen Ordner zwei Ihrer dritten App freigeben möchten. Fügen Sie diese App einfach Ihrer Gruppe hinzu. Daher ist es zu einfach, auf dieselben Elemente in Ihren mehreren Apps zuzugreifen.
Wenn Sie App-Gruppen in Ihrer AppID nicht aktivieren, erhalten Sie [self getSharedLocationPath: @ "group.filesharingdemo"] ist null.
Dank Apple für Share Elements aus Ihrer eigenen Apps-Funktionalität . Viel Spaß beim Codieren. :) :)