- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这两个 objective-c 语句有什么区别?
NSData *documentBytes = [NSData dataWithContentsOfFile:filePath];
与此相对:
NSData *documentBytes = [NSData initWithContentsOfFile:filePath];
从 Apple 的 NSData Class Reference 页面,它对每个
dataWithContentsOfFile - 通过从给定路径指定的文件中读取每个字节来创建并返回数据对象。
initWithContentsOfFile - 返回通过从给定路径指定的文件中读取数据初始化的数据对象。
对我来说,它们在功能上似乎是等同的,但我非常怀疑它们在所有情况下都做同样的事情,对吧?
提前致谢...-埃尔金
最佳答案
当你使用init
时,你总是必须使用alloc
,像这样:
NSData *documentBytes = [[NSData alloc] initWithContentsOfFile:filePath];
这将返回一个保留计数为 1 的 NSData 对象,您现在拥有该引用并负责释放它。
使用dataWithContentsOfFile
时
NSData *documentBytes = [NSData dataWithContentsOfFile:filePath];
你得到一个自动释放的 NSData 对象。你可以使用它而忘记它,自动释放池会处理它。如果你想存储它,你必须保留它。
当然,当您使用 ARC 时,您可以忘记所有这些 ;-),方法本质上是相同的。
关于Objective-c - NSData initWithContentsOfFile 与 dataWithContentsOfFile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16744692/
我想知道我可以使用什么代码来代替 initWithContentsOfFile: 因为我一直在寻找未弃用但找不到任何内容的东西。我正在尝试在 web View 中显示本地 HTML 文件,下面是代码:
我是 iPhone 开发新手,遇到了内存泄漏问题。 我正在使用 NSMutableArray 来检索位于 Documents 目录中的 .plist 文件的内容。 第一次使用它时,一切正常,但如果我多
我保存这样的NSDictionary: NSDictionary *menuList = [[NSDictionary alloc]initWithDictionary:xmlParser.item
我正在使用静态分析器检查我的代码的内存泄漏,我发现以下部分有潜在的泄漏。 NSString *path = nil; NSString *tutorialPath = nil; if (CC_CONT
这是我的代码:(customNames 和 customNamesArray 是静态变量) -(void) loadCustomDataFromDisk { NSString *fullPath
我将图像存储在 NSMutableArray 中,现在我正试图让它们显示在 viewDidLoad 中。我尝试调用 initWithContentsOfFile,但这似乎不起作用。这是代码的样子:im
我试图从 iOS 8 中的 Media/DCIM 文件夹加载图片以便稍后动态压缩它们,所以我开始编写这个脚本。 int main(int argc, char **argv, char **envp)
我正在尝试在 Array 上使用 initWithContentsOfFile: 的 Swift 等价物。文档指出等同于 convenience init(contentsOfFile aPath:
在尝试将数据读入 NSData 时,我是否应该检查给定路径中是否存在文件?目的?现在我暂时没有做,但我的代码可以工作,因为我应该用文件中的数据填充的数组将被设置为 nil,我稍后可以在我的应用程序
在这两种方法之间,哪种更好/更有效?更具体地说,应该使用哪一种,还是有适当的时间使用一种? UIImage *img = [UIImage imageWithContentsOfFile:filePa
我有问题:我想避免 [UIImage imageNamed:]。所以我做了: UIImage *prodImg = [[UIImage alloc] initWithContentsOfFile:@"
这两个 objective-c 语句有什么区别? NSData *documentBytes = [NSData dataWithContentsOfFile:filePath]; 与此相对: NSD
我正在使用以下代码在 NSimage 中加载一个非常大的文件: [[NSImage alloc] initWithContentsOfFile:aFile] 此操作需要一些时间。我想在我的用户界面上显
在我的 iPhone 应用程序中,我使用 NSDecimalNumber 来存储一些货币汇率值。我在应用程序第一次启动时从网络上提取数据,然后在它们过时时再次提取数据,并将它们存储在 NSDictio
我正在尝试使用 initWithContentsOfFile 将 plist 文件读入 NSArray,如 here 中所述。 我的代码如下所示 NSBundle *bundle = [NSB
我正在 ViewVillAppear 中加载 plist 文件,如下所示。第一次加载时,我没有泄漏,但是按下其他 tabBar 按钮/项目并返回到此 View 时,我出现泄漏。我已经在 dealloc
我正在创建一个读取文本文件并在 UIText 字段中显示内容的 iOS 应用。 对于应用程序的前三个连续运行(重新启动新 session 而不退出),数据读取正常。然而,在第四次尝试时,从文件返回的数
我有一个 NSMutableArray,它会反复填充 plist 的变化内容。我如何最有效地做到这一点?我知道我可以使用第二个 NSArray,我分配了 initWithContentsOfFile,
使用以下代码: NSString *imageString = [[NSBundle mainBundle] pathForResource:@"logo64x64" ofType:@"png"];
我想将文件加载到 NSString 变量中,并使用 NSString 的 initWithContentsOfFile 来执行此操作。但是,任何大于 40kb 的文件该方法都会失败,并且 nil 将返
我是一名优秀的程序员,十分优秀!