生成的swift.h文件中关于SecCertificateRef的swift 2.0编译错误
在我们的swift代码中,有一个类的方法具有此签名:生成的swift.h文件中关于SecCertificateRef的swift 2.0编译错误,swift,keychain,swift2,Swift,Keychain,Swift2,在我们的swift代码中,有一个类的方法具有此签名: static var getCertificates : [SecCertificate] { ... } 在生成的应用程序swift.h中,这将导致: @interface TrustedCertificates : NSObject + (NSArray<SecCertificateRef> * __nonnull)getCertificates; @end 我尝试在包含.h文件之前添加#import,但它无
static var getCertificates : [SecCertificate] { ... }
在生成的应用程序swift.h中,这将导致:
@interface TrustedCertificates : NSObject
+ (NSArray<SecCertificateRef> * __nonnull)getCertificates;
@end
我尝试在包含.h文件之前添加#import,但它无法解决错误。
我还尝试将导入添加到pch.h文件中,但这也没有帮助
由于swift文件是生成的,我无法在那里开始编辑它,因为它将被覆盖
知道要编译它缺少什么吗?这看起来像个bug。正确的类型应该是NSArray或CFArrayRef。我不认为这是错误。我读过Objective C现在也支持类型化数组。这可能就是它的语法。问题在于它不知道SecCertificateRef类型否,问题在于
SecCertificateRef
不是Objective-C类型。就像你不能拥有NSArray
(即使你可以拥有NSArray
),你也不能拥有NSArray
。这就是为什么我说这是一个bug:自动生成的代码是不正确的。这是有道理的!如果你能回答这个问题,我可以投你更多的票。我会看看我是否能解决这个问题,然后我会提交一份radarI,在投票时会加倍,作为回答…:)
Type argument 'SecCertificateRef' (aka 'struct __SecCertificate *') is neither an Objective-C object nor a block type