0

アプリで RNCryptor を使用して、データの暗号化を行おうとしています。

以下のコードを見てください。

 var encryptedData: NSData = RNEncryptor.encryptData(data, withSettings:kRNCryptorAES256Settings, password: aPassword, error: nil)

アーキテクチャ i386 の未定義シンボル:
"_kRNCryptorAES256Settings"、参照元: __TFC8UtraceUI24ChatBubbleViewController21textFieldShouldReturnfS0_FCSo11UITextFieldSb in ChatBubbleViewController.o ld: アーキテクチャ i386 のシンボルが見つかりません。

アンダースコア付きの定数名を検索しようとする理由がわかりません。理想的には、bridgesupport およびその他のヘッダー ファイルにある kRNCryptorAES256Settings を検索しようとする必要があります。

何がうまくいかないのでしょうか?

ありがとう !

4

2 に答える 2

1

.mビルドの一部としてファイルを含めるのを忘れた可能性があります。Build Phases の「Build Sources」ステップを確認してください。

Swift で作業している場合は、新しい Swift バージョンを確認することをお勧めします。それは来週マスターにマージされます。

于 2015-10-09T13:59:50.197 に答える
0

Swift は、kRNCryptorAES256Settings である C 構造体を処理できません。この問題は、デバイスのアーキテクチャとは関係ありません。

それを回避するために、C 構造体の必要性を抽象化する唯一の理由で、RNEcryptor で独自のメソッドを作成しました。

+ (NSData *)EncryptDataForSwift:(NSData *)data password:(NSString *)password error:(NSError **)error
{
    return [RNEncryptor encryptData:data withSettings:kRNCryptorAES256Settings password:password error:error];
}

良いアイデアかどうかはわかりませんが、C のみのコードを参照する必要なく Swift を介してメソッドを呼び出すことができるため、これによりプロジェクトがコンパイル可能になります。

var encryptedData:NSData = RNEncryptor.EncryptDataForSwift(data, password: Password, error: nil)

これが誰かを助けることを願っています。

于 2015-10-10T05:11:05.503 に答える