如何使用swift函数返回目标C中的值?
我正在使用 问题是,我使用的是swift-objective C桥接,在这两者之间,我一直使用返回值的函数。如何在我的目标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
@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-CNSDictionary
)。或者,您可以将表视图公开给Swift,并编写Swift代码来填充它
希望有帮助 类型(及其主要属性)是一个struct
。不幸的是,Swift的struct
类型没有桥接到Objective-C。要使用Swift-to-Objective-C桥接,您需要编写Swift代码以进一步处理NewsResponse
类型
例如,您可以从每个感兴趣的新闻响应
中选择信息,并将这些值存储在Swift字典
(该字典连接到Objective-CNSDictionary
)。或者,您可以将表视图公开给Swift,并编写Swift代码来填充它
希望有帮助 斯威夫特班可以吗?有什么错误吗?是的,应该有,而且swift类可以吗?有什么错误吗?是的,我非常确定您的快速实施。。。它似乎希望以同步方式使用数据,通过异步工作流收集数据;因此,我认为您需要完全重写您的原始函数,以使用完成闭包而不是返回值。。。它似乎希望以同步方式使用数据,通过异步工作流收集数据;因此,我认为您需要完全重写原始函数,以使用完成闭包而不是返回值。非常感谢:)非常感谢:)