【问题标题】:No visible @interface for 'NSFileManager' declares the selector 'AESEncryptFile:toFile:usingPassphrase:error:''NSFileManager' 没有可见的@interface 声明选择器'AESEncryptFile:toFile:usingPassphrase:error:'
【发布时间】:2015-10-26 09:30:00
【问题描述】:

我想加密一个 xml 文件。我正在尝试关注此链接strong-encryption-for-cocoa-cocoa-touch

NSError *error = nil;
if (![[NSFileManager defaultManager] AESEncryptFile:@"/path/to/input file" toFile:@"/path/to/output file" usingPassphrase:@"My secret password" error:&error])
{   
        NSLog(@"Failed to write encrypted file. Error = %@", [[error userInfo] objectForKey:AESEncryptionErrorDescriptionKey]);
}

在输入代码时出现此错误:

“NSFileManager”没有可见的@interface 声明选择器“AESEncryptFile:toFile:usingPassphrase:error:”

我已包含在标题中

 #include <CommonCrypto/CommonCryptor.h>

我该如何克服这个错误?我是否错过了包含或声明某些内容?

【问题讨论】:

    标签: ios objective-c cocoa nsfilemanager


    【解决方案1】:

    NSFileManager 在 iOS SDK 中不附带该方法,这就是您看到 No visible @interface for 'NSFileManager' declares the selector 'AESEncryptFile:toFile:usingPassphrase:error:' 编译器问题的原因。

    但是您可以通过合并来自 Jeff LeMarche 的这篇博文的代码来跳过这个障碍:http://iphonedevelopment.blogspot.com/2009/02/strong-encryption-for-cocoa-cocoa-touch.html(查找 zip 文件链接)

    【讨论】:

    • 谢谢@Michael 会试试这个链接 [link] (github.com/appwgh/Encryption) 。单击时的 zip 文件链接显示一个黑色的空白页面。
    • 啊,我明白为什么它是一个空白页了。 Jeff 帖子的顶部说“请不要使用此代码!相反,请查看 Jim Dovey's Common Crypto code from AQToolkit.
    • @1218GG Dovey 代码也已经过时了。当前一个很好的加密源是RNCryptor,它处理了安全使用加密所需的所有细节,它目前正在维护中并且经过了很好的审查。如果由于某种原因不能满足您的需求,请在问题中添加更多信息。
    • 谢谢@Zaph 将查看您提供的链接。我要做的就是:我有一个包含一些数据的 xml 文件,我想加密该文件,然后在我的应用程序需要从文件中读取时对其进行解密。如果可能的话,我正在寻找一种完整的安全证明。我正在开发一个 iOS 应用程序。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-27
    • 2021-09-22
    相关资源
    最近更新 更多