问题标签 [nsbundle]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2728 浏览

iphone - 使用 NSBundle 从自定义目录读取图像文件

创建一个包含所有图像的自定义目录。设计它是定制的,因为它可以帮助我在配置中的不同位置获取图像。

我已将图像放在 test 文件夹下,并且属于 .png 类型。有没有办法检索如下图像。

/** 再次更新 **/

当前,根据 Photoscroller 示例,此文件夹位于 Application_Home/Resources/ImageTiles/ 下。我们如何将其更改为 /Users/home/lifemoveson/test/ImageTiles/ 文件夹?

0 投票
2 回答
2371 浏览

objective-c - NSDocumentDirectory 或 NSBundle resourcePath 与 Sqlite?

我想知道为什么我们首先在这里使用 NSDocumentDirectory 搜索路径:

稍后我们使用 NSBundle 中的这次 resourcePath 将这条路径与另一条路径进行比较:

两者有什么区别?

0 投票
2 回答
220 浏览

objective-c - 如何从其他框架获取图像?

我想要一个与 Lion 形状相同的光标

所以而不是这样: NSC光标图标

我想要这个:狮子中的NSCursor

可以在以下位置找到: System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/Resources/cursors/resizeeastwest/cursor.png在新的 OSX 10.7 GM 中

有没有办法可以使用 NSBundle 中的方法加载该图像?如果我可以使用系统中的图像,我希望在我的应用程序中使用不同的图像(作为资源)。

0 投票
2 回答
634 浏览

iphone - 使用 loadNibNamed 加载 UITableViewCell 时保留计数

我正在使用AppleloadNibNamed:owner:options:记录的从 nib 文件加载自定义 UITableViewCell :

以及视图控制器的类声明:

MyViewController 是 ItemCell 的文件所有者。

我正在观察以下内容:

  • (1)self.itemCell保留计数为 0
  • (2)self.itemCell保留计数为 2
  • (3)self.itemCell保留计数为 0
  • (3)cell保留计数为 1

有人可以解释一下:

  • 为什么self.itemCell保留计数在 (2) 和 (3) 之间从 2 变为 0?
  • 为什么cell(3)中的保留计数等于1?
0 投票
1 回答
319 浏览

ios - 从网站加载 iOS 应用程序资源

由于视频和声音文件的大量使用,我目前正在开发一个大小已超过 100mb 的通用 iOS 应用程序。我已经实现了在运行时(从网站)加载这些资产的解决方案,但我想知道 Apple 是否批准此类操作。

它现在的工作方式是这样的:

  1. 为每个 iOS 设备类型创建一个包(包含所有视频和声音文件):iPhone、iPhone Retina 和 iPad。

  2. 然后这个包被压缩并上传到服务器。

  3. 根据安装应用程序的设备,下载相应的 zip 文件,保存到 Documents 目录,然后解压缩。

  4. 最后用 [NSBundle bundleWithPath: ] 加载包

这种方法效果很好,但我无法通过阅读文档来弄清楚苹果是否会因为它而拒绝该应用程序?谢谢!

0 投票
2 回答
1054 浏览

objective-c - Objective C - 从笔尖加载 UIView?

nib我有一个从文件初始化自身的基类。我怎样才能继承这个class。每次我初始化subclass它时,它都会创建一个基类的对象,而不是class我试图创建的实际对象

基类

一类

用法

0 投票
1 回答
10026 浏览

ios - NSBundle mainBundle pathForResource (可能不是同一个问题)

问题:[NSBundle mainBundle] pathForResource 返回 null (0x0)

我阅读了很多关于这个主题的帖子,这是我发现的:

  1. 确保您尝试获取路径的文件在项目中。要检查,请在项目文件列表中查找文件,如果不存在,请将其拖放。

  2. 检查您尝试加载的文件是否正在复制到应用程序。为此,请单击项目文件下的项目(带有项目名称的蓝色栏->单击目标->单击构建阶段->单击以展开“复制捆绑资源”,并确保您的文件在其中. 如果不是,请单击加号,然后添加。

  3. 确保大小写完全匹配。(又名 - 模拟器将工作/应用程序不会出现问题)确保案例完全匹配,否则它将不返回任何内容。要解决这个问题,只需在项目中重命名它,或者在源代码中使用正确的大小写。

  4. 项目可能缺少媒体框架。要解决此问题,请单击您的项目菜单 -> 单击目标 -> 单击以展开“Link Binary With Libraries”。现在选择 MediaPlayer.framework 并构建代码。

  5. 如果一切都失败了,请清理项目,然后重试。

所有这些都经过检查/修复,但不起作用。我的工作正常,然后我更改了我在应用程序中显示的视频。由于我更改了文件,它停止工作。

NSString *path = [[NSBundle mainBundle] pathForResource:@"multiplying" ofType:@"m4v"];

问:为什么是空的?该文件大小写匹配/输入正确,大小约为 10 兆。(文件是否太大?)在模拟器中工作正常,我可以得到图像的路径,在这个上面一行,没有错误。

0 投票
3 回答
16197 浏览

objective-c - 访问 app bundle 中的 plist 返回 null

我正在使用我之前成功使用的一段代码将 plist 加载到数组中:

initWithContentsOf 文件失败(数组为空,表明它在应用程序包中找不到 plist)。

在 iPhone 模拟器下,我检查了第一行创建的路径是否指向应用程序文件(确实如此),并使用 Finder 上下文菜单“显示包内容”向自己证明“species_name.plist”实际上在捆绑包——长度表明它包含东西,所以它应该可以工作(并且在我编写的其他 iOS 应用程序中也有)。欢迎提出建议...

[环境 Xcode 4.2 测试版,iOS 4.3.2]。

0 投票
3 回答
2769 浏览

objective-c - 将本地图像加载到 UIWebView

我想截屏,然后向 webview 发送它的本地路径,所以它会显示它。我知道 webview 可以从 NSBundle 获取图像,但是这个屏幕截图是动态创建的——我可以通过代码添加一些东西吗?

我是这样尝试的:

但是 loadImageFunction 无法访问它,带有 file:/// 或 file:// 前缀。解决方案是什么?谢谢你的帮助。

编辑:在代码中添加了一个缺失的行

解决方案:我使用了 Cyrille 的建议和这个库进行编码:http ://cocoawithlove.com/2009/06/base64-encoding-options-on-mac-and.html

0 投票
1 回答
1010 浏览

objective-c - 在设备上找不到 NSBundle 文件夹,但可以在模拟器中使用

我正在编写的 iPad 应用程序遇到了一个非常奇怪的问题。在启动时,我想将包含其他几个文件夹(为空)的文件夹从应用程序包复制到 Documents 目录。使用“为任何添加的文件夹创建文件夹引用”将要复制的文件夹称为“flds”(全部小写)添加到 Xcode 4 项目中,并且我在编译后检查它实际上是 .app 文件的一部分。(并且在尝试复制时它并不存在。)

我尝试使用以下任一调用进入“flds”文件夹(它们都有效):

然后使用 NSFileManager 的copyItemAtPath:toPath:error:方法(或使用 URL 而不是路径字符串时的 URL 等效项)进行复制。

所有这些策略都可以在 iPad 模拟器和 iPad 设备上完美运行,但以下例外:当我(成功)为 Ad Hoc 分发构建时,将 .app 和 .mobileprovision 拖到 iTunes 中,同步然后运行应用程序设备,系统不再认为“flds”文件夹存在!我一直在尝试检查这个好几个小时,但没有运气。同样,我完全确定它在模拟器和从 Xcode 运行的设备上都可以工作,但在通过 iTunes 同步时不能。

想法?

我发现以下调用在通过 iTunes 同步 iPad 应用程序后也成功获取了文件夹路径:

但是,当我使用此路径将文件夹复制到 Documents 目录中的新位置时,只有文件夹本身和其中的 .txt 文件(我把它放在那里作为测试,它实际上不应该在那里)得到复制,而不是 6-7 个空子文件夹。同样,同样的模式也显示出来了:在模拟器和从 Xcode 运行的设备上都可以正常工作(带有“test.txt”的“flds”文件夹和空子文件夹被成功复制),但在通过 iTunes 同步时不能正常工作(只有“flds”文件夹'test.txt' 被复制,而不是子文件夹)。这真的是 的预期行为copyItemAtPath:toPath:error:吗?为什么通过 iTunes 同步后它的行为会有所不同?