Из iOS 8 Я успешно получил доступ к той же папке, используя " Функциональность группы приложений. " Я расширяю ответ @siejkowski.
Примечание: Он будет работать только с той же учетной записи разработчика.
Для этого необходимо выполнить следующие шаги.
- first Enable "Группы приложений »из вашей учетной записи разработчика.
- Создание профиля обеспечения.и используйте его.
Теперь вам нужно создать два приложения.Имя образца
- Demo_Share_One
- Demo_Share_Two
Теперь мы копируем изображения из Demo_Share_One в папку общего доступа, которая создается по умолчанию приВы включаете группы приложений и запускаете приложение.и получит доступ ко всем этим изображениям из Demo_Share_Two .
Вы должны взять имя группы, которое было задано в вашей учетной записи разработчика. Сказать: group.filesharingdemo
.
Добавить метод нижев обоих приложениях, чтобы получить относительный путь общего доступа к папке URL.
- (NSString *) getSharedLocationPath:(NSString *)appGroupName {
NSFileManager *fileManager = [NSFileManager defaultManager];
NSURL *groupContainerURL = [fileManager containerURLForSecurityApplicationGroupIdentifier:appGroupName];
return [groupContainerURL relativePath];
}
Теперь мы копируем изображения из пакета из 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");
}
}
Теперь в Demo_Share_Two для доступа к этим изображениям
NSString *pathShared = [[self getSharedLocationPath:@"group.filesharingdemo"] stringByAppendingPathComponent:[NSString stringWithFormat:@"hd%d.jpg",number]];
NSLog(@"%@",pathShared);
//BOOL fileExist = [[NSFileManager defaultManager] fileExistsAtPath:pathShared];
imgView.image = [UIImage imageWithContentsOfFile:pathShared];
И теперь вы получите все изображения, которые вы записываете с Demo_Share_One .
Так Отныне, если вы хотитеподелитесь этой папкой два ваших третьих приложения.просто добавьте это приложение в свою группу.Поэтому слишком легко получить доступ к одним и тем же элементам в ваших нескольких приложениях.
, если вы не включите группы приложений в своем AppID, вы получите [self getSharedLocationPath: @ "group.filesharingdemo"], равное нулю.,
Спасибо Apple за Совместное использование элементов из ваших собственных приложений .Удачного кодирования.:)