我在MyProjectnameTests文件夹中创建了一个名为RemoteModelFactoryTest的 Objective-c单元测试类.
要做一些测试,RemoteModelFactoryTest必须实现IModelIDProvIDer协议.
当我#import“MyProjectname-Swift.h”在我的Objective-C类中使用我的swift协议时,我得到一个没有找到的文件.
如果我将#import指令更改为#import“MyProjectnameTests-Swift.h”,则会找到该头,但不是我的协议(它在MyProjectname项目中定义,而不是在MyProjectnameTests项目中).
在*测试项目中使用Swift代码有什么特别之处吗?
解决方法 我知道它的额外的黑客和一切,但我做的和它的工作是复制公共标题从生成的“Project-Swift.h”和粘贴所需的.m文件的测试.所以我复制了这样的东西:
SWIFT_CLASS("_TtC10Inventorum11ImageEntity")@interface ImageEntity : NSObject <FICEntity>@property (nonatomic,copy) Nsstring * imageID;@property (nonatomic) NSURL * retinaimageURL;@property (nonatomic) NSURL * nonRetinaimageURL;@property (nonatomic,Readonly) NSURL * imageURL;@property (nonatomic,Readonly,copy) Nsstring * UUID;@property (nonatomic,copy) Nsstring * sourceImageUUID;@property (nonatomic) RACSignal * rac_signalForImage;- (instancetype)init OBJC_DESIGNATED_INITIAliZER;- (NSURL *)sourceImageURLWithFormatname:(Nsstring *)formatname;- (FICEntityImageDrawingBlock)drawingBlockForImage:(UIImage *)image withFormatname:(Nsstring *)formatname;- (voID)objc_setType:(Nsstring *)type;@end
此外,我还复制了SWIFT_CLASS等的所有宏.我的测试正在构建和传递测试Swift代码.
BTW.不要忘记在Swift上公开测试课程和方法.
总结以上是内存溢出为你收集整理的ios – 使用Swift代码的Objective C测试类全部内容,希望文章能够帮你解决ios – 使用Swift代码的Objective C测试类所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)