Как использовать функцию 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 для его заполнения.

Надеюсь, это поможет!

Другие вопросы по тегам