Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用swift函数返回目标C中的值?_Swift_Objective C Blocks_Ibm Watson_Alchemyapi_Bridging - Fatal编程技术网

如何使用swift函数返回目标C中的值?

如何使用swift函数返回目标C中的值?,swift,objective-c-blocks,ibm-watson,alchemyapi,bridging,Swift,Objective C Blocks,Ibm Watson,Alchemyapi,Bridging,我正在使用 问题是,我使用的是swift-objective C桥接,在这两者之间,我一直使用返回值的函数。如何在我的目标C代码中使用该值 这是我的速成班 @objc class alchemyNews : NSObject { func getNewsList() -> NewsResponse { let apiKey = "api-key" let alchemyDataNews = AlchemyDataNews(apiKey: apiKey) let

我正在使用

问题是,我使用的是swift-objective C桥接,在这两者之间,我一直使用返回值的函数。如何在我的目标C代码中使用该值

这是我的速成班

@objc class alchemyNews : NSObject {

func getNewsList() -> NewsResponse {

    let apiKey = "api-key"
    let alchemyDataNews = AlchemyDataNews(apiKey: apiKey)

    let start = "now-1d" // yesterday
    let end = "now" // today
    let query = [
        "q.enriched.url.title": "O[IBM^Apple]",
        "return": "enriched.url.title,enriched.url.entities.entity.text,enriched.url.entities.entity.type"
    ]
    let failure = { (error: NSError) in print(error) }

    alchemyDataNews.getNews(start, end: end, query: query, failure: failure) { news in
        print(news)

    }

    let response : NewsResponse = alchemyDataNews.getNews(start, end: end) { news in
        return news
    }

    return response
}
}
我想显示alchemyDataNews.getNews打印值。所以我用这种方式在我的Objective C类中调用这个函数

@property (strong, nonatomic) AlchemyDataNews *getnews;

-(void)loadNews
{
   self.getnews = [[AlchemyDataNews alloc]init];
   [self.getnews getNewsList];

}

但现在该怎么办呢?这将只调用函数而不给我响应,这样我就可以将其放入数组并在tableview中显示。

我认为问题在于
getNewsList
返回
NewsResponse
的一个实例,您应该将其存储在一个变量中,然后使用它

self.getnews = [[AlchemyDataNews alloc]init];
NewsResponse *newResponse = [self.getnews getNewsList];

// now you can use 'newResponse'
// ...

希望对您有所帮助。

我认为问题在于
getNewsList
返回
NewsResponse
的实例,您应该将其存储在变量中,然后使用它

self.getnews = [[AlchemyDataNews alloc]init];
NewsResponse *newResponse = [self.getnews getNewsList];

// now you can use 'newResponse'
// ...
希望有帮助。

类型(及其主要属性)是一个
结构。不幸的是,Swift的
struct
类型没有桥接到Objective-C。要使用Swift-to-Objective-C桥接,您需要编写Swift代码以进一步处理
NewsResponse
类型

例如,您可以从每个感兴趣的
新闻响应
中选择信息,并将这些值存储在Swift
字典
(该字典连接到Objective-C
NSDictionary
)。或者,您可以将表视图公开给Swift,并编写Swift代码来填充它

希望有帮助

类型(及其主要属性)是一个
struct
。不幸的是,Swift的
struct
类型没有桥接到Objective-C。要使用Swift-to-Objective-C桥接,您需要编写Swift代码以进一步处理
NewsResponse
类型

例如,您可以从每个感兴趣的
新闻响应
中选择信息,并将这些值存储在Swift
字典
(该字典连接到Objective-C
NSDictionary
)。或者,您可以将表视图公开给Swift,并编写Swift代码来填充它


希望有帮助

斯威夫特班可以吗?有什么错误吗?是的,应该有,而且swift类可以吗?有什么错误吗?是的,我非常确定您的快速实施。。。它似乎希望以同步方式使用数据,通过异步工作流收集数据;因此,我认为您需要完全重写您的原始函数,以使用完成闭包而不是返回值。。。它似乎希望以同步方式使用数据,通过异步工作流收集数据;因此,我认为您需要完全重写原始函数,以使用完成闭包而不是返回值。非常感谢:)非常感谢:)