目标c中的测试字符串扩展

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了目标c中的测试字符串扩展相关的知识,希望对你有一定的参考价值。

我的项目中有这个-

extension String 
    func doSomething() -> String 
        return "doSomething"
    

我正在尝试为此编写一个Objective C测试。 (这是可由Objective C项目使用的SDK),但是在调用-

NSString* actualResult = [string doSomething];

我遇到此错误-

No visible @interface for 'NSString' declares the selector 'doSomething'

如何完成?

答案

我尝试过NSString,但出现相同的错误,@objc只能是添加到类而不是结构

仅添加@objc是不够的,为了访问Objective-C文件内的快速功能,您必须在.m文件中导入<ProductModuleName>-Swift.h

例如

#import <Foundation/Foundation.h>
#import "StackOverflow-Swift.h"

@interface SampleClass : NSObject

@end

@implementation SampleClass

- (void)test 
    NSString *testing = @"abcd";
    [testing doSomething];



@end

最后

public extension NSString 
    @objc func doSomething() -> String 
        return "doSomething"
    

以上是关于目标c中的测试字符串扩展的主要内容,如果未能解决你的问题,请参考以下文章

PHP 代码片段

我的片段中的按钮无法识别

使用目标 c 中的类别私下扩展协议

getSupportFragmentManager() 在活动扩展片段中未定义

C 中的共享内存代码片段

目标 c 中的 XCTKVOExpectation 使用示例