Swift - 桥接头失败。 “*”没有名为“*”的成员

Posted

技术标签:

【中文标题】Swift - 桥接头失败。 “*”没有名为“*”的成员【英文标题】:Swift - Bridging header failed. '*' does not have a member named '*' 【发布时间】:2015-10-15 05:45:46 【问题描述】:

我开发了一个使用 CommonCrypto 库的应用程序。问题是我可以在 Swift 文件中创建一个实例。我的对象是使用 Objective-C 创建的。似乎不能很好地创建桥接头。

错误信息

/Users/MNurdin/Documents/ios/xxxxx/Models/Main.swift:15:9: 'CustomObject' does not have a member named 'encrypt'

CustomObject.h

#import <Foundation/Foundation.h>
#import <CommonCrypto/CommonCrypto.h>
#import "GTMBase64.h"

@interface CustomObject : NSObject
+ (NSString*)encrypt:(NSString*)plainText withKey:(NSString*)key;
@end

CustomObject.m

#import "CustomObject.h"
@implementation CustomObject
+ (NSString*)encrypt:(NSString*)plainText withKey:(NSString*)key
    /*--*/
    return result;

@end

全球.swift

var instanceOfCustomObject: CustomObject = CustomObject()
println(instanceOfCustomObject.encrypt("p@$$w0rd","12345678"))

【问题讨论】:

我收到此错误消息,表达式不允许在顶层 哪一行?还在想办法。 【参考方案1】:

声明中开头的+表示

+ (NSString*)encrypt:(NSString*)plainText withKey:(NSString*)key;

是Objective-C中的一个类方法。你必须调用它 class(或 Swift 语言中的 type)本身,而不是实例:

let encrypted = CustomObject.encrypt("p@$$w0rd", withKey: "12345678")

【讨论】:

以上是关于Swift - 桥接头失败。 “*”没有名为“*”的成员的主要内容,如果未能解决你的问题,请参考以下文章

Swift 桥接头失败问题

Swift 中的桥接头转换

Swift 中的桥接头转换

Xcode 6.4 Swift 单元测试无法编译:“GPUImage.h 未找到”“导入桥接头失败”

Swift 编译器 - 代码生成

不能使用自动生成的 Swift 桥接头