我以前做过这件事,但现在不管用了.我在做:

NSString* path = [[NSBundle mainBundle] pathForResource:@"test" 
                                                 ofType:@"txt"];
NSString* content = [NSString stringWithContentsOfFile:path
                                              encoding:NSUTF8StringEncoding
                                                 error:NULL];
NSLog(@"%@",path);

每次我记录路径和内容时,它都返回(null).有人能看出我做错了什么吗?

推荐答案

如果您向内容传递一个它无法打开的路径,则内容将为零(记录为"(null)".所以您唯一的问题是NSBundle的相关实例无法找到test.应用程序包的资源部分中的txt.

你应该:

  1. 判断文件是否在Xcode项目中;如果是的话,
  2. 判断它是否包含在所选目标下方的"复制Bundle 资源"阶段(在正常Xcode窗口布局左侧的项目树视图中),如果是,
  3. 查看生成的应用程序包(查找您的产品,右键单击, Select "在Finder中显示",从Finder右键单击应用程序并 Select "显示软件包内容",然后在其中查找您的文件),以确保它在那里.

如果它被复制进来,但是NSBundle的相关实例找不到它,那么就有一件非常奇怪的事情正在发生.

Objective-c相关问答推荐

将 NSInteger 转换为 NSIndexpath

Objective-C 中的实例变量是否默认设置为 nil?

OCUnit 的单元测试示例

Xcode 的任何 ReSharper 类似功能?

iphone 的 UIPopoverController 不工作?

保存 UIImage,以错误的方向加载它

dispatch_get_global_queue 和 dispatch_queue_create 有什么区别?

判断是否显示 UIAlertView

使用对象引用的 NSArray,我是显式释放数组中的所有对象还是仅释放数组本身?

iOS 7 - viewDidLoad 和 viewDidAppear 之间的区别

Objective C const NSString * vs NSString * const

对块进行类型定义是如何工作的

如何四舍五入浮点值?

具有高质量代码的开源 Objective-C 项目?

发出许多网络请求的 iOS 应用程序的最佳架构?

如何推送两个视图控制器但只为第二个设置动画过渡?

嵌入自定义容器视图控制器时,内容位于导航栏下方.

架构 i386 clang 的重复符号

Objective-C中的继承和类别有什么区别

通过将另一个字符串重复给定次数来创建 NSString