З iOS 8 я успішно отримую доступ до тієї самої папки, використовуючи " Функціональність групи додатків ". Я розширюю відповідь @siejkowski.
Примітка. Він працюватиме лише з того самого облікового запису розробника.
Для цього вам слід виконати наведені нижче дії.
- спочатку увімкніть "Групи програм" зі свого облікового запису розробника.
- Створити профіль забезпечення. і використовувати його.
Тепер вам потрібно створити дві програми. Назва зразка
- 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];
}
Зараз ми копіюємо зображення з Bundle з 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);
imgView.image = [UIImage imageWithContentsOfFile:pathShared];
І тепер Ви отримаєте всі зображення, які Ви пишете, з Demo_Share_One .
Тож відтепер, якщо ви хочете поділитися цією папкою двома, вашим третім додатком. просто додайте цей додаток до своєї групи. Тому надто легко отримати доступ до одних і тих самих елементів у своїх кількох програмах.
якщо ви не ввімкнете групи програм у вашому AppID, тоді ви отримаєте [self getSharedLocationPath: @ "group.filesharingdemo"] має значення null.
Завдяки Apple for Share Elements завдяки власним функціоналам додатків . Щасливого кодування. :)