【发布时间】:2011-05-17 06:37:53
【问题描述】:
我在我的 Xcode 项目中创建了一个名为 USER_PHOTO 的组文件夹
然后我将一些图像存储到该文件夹中。
在我的应用程序中,我打开了相机模式。
如何将捕获的图像保存到“USER_PHOTO”文件夹中?另外,如何读取文件夹中的所有图像?
请给我一些想法来解决这些问题。提前致谢。
【问题讨论】:
标签: objective-c ios camera file-management
我在我的 Xcode 项目中创建了一个名为 USER_PHOTO 的组文件夹
然后我将一些图像存储到该文件夹中。
在我的应用程序中,我打开了相机模式。
如何将捕获的图像保存到“USER_PHOTO”文件夹中?另外,如何读取文件夹中的所有图像?
请给我一些想法来解决这些问题。提前致谢。
【问题讨论】:
标签: objective-c ios camera file-management
我认为你有一个误解。在 iOS 设备上运行时,您在 Xcode 中创建的组和文件夹不会出现在您的应用中。您可以通过在模拟器的文件夹中找到构建的应用程序(在 ~/Library/Application Support/iPhone Simulator/ 下)并查看其应用程序包来查看发生了什么。您会看到所有文件都在一个大文件夹中。这与 Mac 应用程序不同,Mac 应用程序有多个文件夹用于存放资源、代码等)。
因此,要读取图像,您只需从应用的文件夹中读取它们。使用 NSBundle pathForResource:ofType: 来获取它们。 iOS 中的“资源”路径与您应用的文件夹相同。
此外,在 iOS 上,您的应用只能写入其 .app 包旁边的几个文件夹,例如“文件”。您也可以在 Simulator 文件夹中看到它。
NSBundle 类提供了获取这些文件夹路径的函数。
然后,您还可以设置您的应用程序(通过 plist 键)以使 Documents 文件夹在 iTunes 中可见,以便您随后可以通过 iTunes 将存储的文件复制到您的 Mac/PC。
【讨论】:
可以通过以下方式完成,
NSString *animationFolderName = UIDeviceOrientationIsPortrait(mDeviceOrientation)? @"Portrait_animation":@"Landscape_animation";
int index = 0;
NSMutableArray *imagesArray = [[NSMutableArray alloc] init];
for (index = 1; index <= kMaxAnimationImages; index++)
{
NSString *cname = [animationFolderName stringByAppendingFormat:@"/%d.png", index];
UIImage *img = [UIImage imageNamed:cname];
if (img)
[imagesArray addObject:img];
}
【讨论】: