4
私は現在、Swiftでカスタムモジュールを作り、それをReact Nativeに橋渡ししようとしています。私はRNのドキュメント、さらには自分のコードにコメント1からのチュートリアルに従ってきましたが、私は、次のコンパイルエラー得続ける:Swift <->リアクションネイティブブリッジ重複インターフェイス
Duplicate interface definition for class 'StorageManager'
誰でもこのエラーを解決する方法についてのアイデアを?
ブリッジ.mファイル:
#import "RCTBridgeModule.h"
@interface RCT_EXTERN_MODULE(StorageManager, NSObject)
RCT_EXTERN_METHOD(getAccessToken:(RCTPromiseResolveBlock*)resolver reject:(RCTPromiseRejectBlock*)reject)
RCT_EXTERN_METHOD(getRefreshToken:(RCTPromiseResolveBlock*)resolver reject:(RCTPromiseRejectBlock*)reject)
RCT_EXTERN_METHOD(getSelectedNetworkId:(RCTPromiseResolveBlock*)resolver reject:(RCTPromiseRejectBlock*)reject)
@end
迅速な実装
import Foundation
@objc(StorageManager)
class StorageManager: NSObject {
@objc func getAccessToken(resolver:RCTPromiseResolveBlock, reject:RCTPromiseRejectBlock) {
let accessToken = Shared.getObjectPrefs("access_token")
if(accessToken != nil){
resolver(accessToken)
}
else {
reject("no_access_token", "No access token present", nil)
}
}
@objc func getRefreshToken(resolver:RCTPromiseResolveBlock, reject:RCTPromiseRejectBlock) {
let refreshToken = Shared.getObjectPrefs("refresh_token")
if(refreshToken != nil){
resolver(refreshToken)
}
else {
reject("no_refresh_token", "No refresh token present", nil)
}
}
@objc func getSelectedNetworkId(resolver:RCTPromiseResolveBlock, reject:RCTPromiseRejectBlock) {
let networkId = Shared.getObjectPrefs("current_network_id")
if(networkId != nil){
resolver(networkId)
}
else {
reject("no_network_id", "No network id present", nil)
}
}
}
Objective-Cクラスで同じ問題が発生しましたが、フレームワークからブリッジしようとしています。これが私が見つけることができる唯一の結果です。 – Luke
これはなぜ起こったのですか? –
Objective-Cコードに '#import" MyProject-Swift.h "'のようなインポートがありませんか? –