2017-08-17 11 views
1

にObjCにファイル..私は迅速なファイルでこれをやって、ブリッジファイルを作成した後

#import "EncryptionConstants.h" 

@implementation EncryptionConstants 

char encKey[] = "secretKey"; 
char iv[] = "secretIV"; 

@end 

をObjective Cのの.mファイルのcharデータ型の文字列を宣言し、スウィフトにそれを使用

var enc = EncryptionConstants() 
      print(enc.encKey) 

のようなエラーを取得:

EncryptionConstantsの値はメンバーenckeyというのがありません。以下のような

+0

https://stackoverflow.com/questions/22850548/where-to-declare-a-static-variable-in-objective-cあなたは、静的変数を宣言しています。 –

答えて

1

ヘッダファイル:

#import <Foundation/Foundation.h> 

@interface EncryptionConstants: NSObject 
@property unsigned char* encKey; 
@property unsigned char* iv; 

@end 

.mファイルの下で:

#import <Foundation/Foundation.h> 
#import "EncryptionConstants.h" 

@implementation EncryptionConstants 

- (instancetype)init 
{ 
    self = [super init]; 
    if (self) { 
     _encKey = "secretKey"; 
     _iv = "secretIV"; 
    } 
    return self; 
} 

@end 

私たちは以下のように迅速に呼び出す必要があります:

let enc = EncryptionConstants() 
print(String(cString: enc.encKey)) 
print(String(cString: enc.iv)) 

は含める必要があり

#import "EncryptionConstants.h" 
あなたの橋渡しヘッダー内

+0

コンパイルエラーを修正するだけですが、値が正しく設定されていません。 行の警告_encKey = "secretKey"; 'char [10]'から 'unsigned char *'に代入すると、異なる符号を持つ整数型へのポインタが変換されます – rhru

+0

char型をNSStringに変更することができます –

+0

データ型をcharとする技術的要件があります – rhru

関連する問題