gpt4 book ai didi

ios - 从 xcode 中的 mainBundle 获取子目录

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:54:21 25 4
gpt4 key购买 nike

我有以下代码:

NSString *folderPath = [NSString stringWithFormat:@"%@/Objects/", [[NSBundle mainBundle] bundlePath]];
NSArray *fileList = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:folderPath error: nil];

for (NSString *s in fileList) {
NSLog(s);
}

enter image description here

Objects 文件夹中有 100 个 png 文件。

但是文件列表似乎是空的。关于我的项目设置,我可以检查哪些内容?我做错了代码吗? fileList应该是Objects中所有图片的数组吗?

我试图获取一个数组,其中包含我拥有的所有图像的名称,以便稍后我可以将图像分配给 UIImage

最佳答案

当您将图像文件夹拖到 Xcode 项目中时,“对象”文件夹的黄色文件夹图标表示您创建了一个文件夹组而不是文件夹引用(它们具有蓝色文件夹图标)。
Xcode 在“Copy Bundle Resources”构建阶段将文件夹组中的文件复制到应用程序包的根目录中。
如果你想在你的应用程序包中有一个名为“Objects”的子目录,你必须在将“Objects”拖到你的 Xcode 窗口后选择“为任何添加的文件夹创建文件夹引用”。

您的项目侧边栏应显示“对象”文件夹,如下所示:
enter image description here

要从该复制的文件夹中获取所有 .png 的列表,您可以使用以下代码:

NSURL* resourceURL = [[NSBundle mainBundle] resourceURL];
resourceURL = [resourceURL URLByAppendingPathComponent:@"Objects"];
NSError* error = nil;
NSArray* resourceURLContents = [[NSFileManager defaultManager] contentsOfDirectoryAtURL:resourceURL includingPropertiesForKeys:nil options:0 error:&error];
resourceURLContents = [resourceURLContents filteredArrayUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(NSURL* evaluatedObject, NSDictionary *bindings) {
return [[evaluatedObject pathExtension] isEqualToString:@"png"];
}]];
NSLog(@"Contents:%@", resourceURLContents);

关于ios - 从 xcode 中的 mainBundle 获取子目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22498046/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com