Как использовать функцию swift, которая возвращает значение - в задаче C?
Я использую API IBM Watson - Новости Alchemy Data
Проблема в том, что я использую быстродействующий мост 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];
}
Но что теперь делать? Это просто вызовет функцию и не даст мне ответ, чтобы я мог поместить ее в массив и отобразить в виде таблицы.
2 ответа
Я думаю, что проблема в том, getNewsList
возвращает экземпляр NewsResponse
Вы должны сохранить его в переменной, а затем использовать его.
self.getnews = [[AlchemyDataNews alloc]init];
NewsResponse *newResponse = [self.getnews getNewsList];
// now you can use 'newResponse'
// ...
Надеюсь, что это помогло.
NewsResponse
тип (и его основное свойство, NewsResult
) это struct
, К сожалению, Свифт struct
типы не соединяются с Objective-C. Чтобы использовать мост Swift-to-Objective-C, вам нужно написать код Swift для дальнейшей обработки NewsResponse
тип.
Например, вы можете выбрать информацию из каждого NewsResponse
что вы заинтересованы и хранить эти значения в Swift Dictionary
(который соединяет Objective-C NSDictionary
). В качестве альтернативы, вы можете представить табличное представление Swift и написать код Swift для его заполнения.
Надеюсь, это поможет!