Метод не реализован в протоколе (с использованием wit.ai SDK)

Я впервые использую SDK wit.ai для iOS и шаг за шагом следовал тому, что написано на начальной странице официального сайта https://wit.ai/docs/ios/3.1.1/quickstart. Я получил эту ошибку:

Метод 'witDidGraspIntent:entities:body:error:' в протоколе 'WitDelegate' не реализован.

Я все еще могу запустить приложение, и сообщение отображается в моем почтовом ящике (в консоли), но ответ не отправляется обратно, и приложение аварийно завершает работу. Я получил эту ошибку:

Ошибка при постановке буфера в очередь из обратного вызова

Вот мой код

ViewController.m

#import "ViewController.h"
@interface ViewController ()

@end

@implementation ViewController {
    UILabel *labelView;
}

- (void)witDidGraspIntent:(NSArray *)outcomes 
                messageId:(NSString *)messageId 
               customData:(id)customData 
                    error:(NSError*)e {
    //Implementation here...
    labelView.text = @"Hey what's up";
    [self.view addSubview:labelView];
}

ViewController.h

#import <UIKit/UIKit.h>
#import <Wit/Wit.h>

@interface ViewController : UIViewController <WitDelegate>


@end

Спасибо.


person laribiwalid    schedule 12.01.2015    source источник
comment
Вы реализовали только witDidGraspIntent:messageId:customData:error:. Вам нужно (также?) реализовать witDidGraspIntent:entities:body:error:.   -  person Ian MacDonald    schedule 12.01.2015
comment
Должен ли я добавить новый -void ?? Почему это не указано в руководстве по началу работы на веб-сайте ?? Спасибо.   -  person laribiwalid    schedule 12.01.2015
comment
Вы должны реализовать все методы, требуемые протоколом. Пожалуйста, свяжитесь с автором руководства по началу работы напрямую, если у вас есть дополнительные вопросы.   -  person Ian MacDonald    schedule 13.01.2015
comment
Я уже сделал. И разместил этот вопрос здесь на случай, если есть люди, у которых была такая же проблема, и они могут помочь. Спасибо   -  person laribiwalid    schedule 13.01.2015


Ответы (1)


Чувак, сообщение о сбое, которое ты получаешь, говорит тебе, что именно не так.

Метод 'witDidGraspIntent:entities:body:error:' в протоколе 'WitDelegate' не реализован.

Вам не хватает метода (witDidGraspIntent:entities:body:error:) в реализации протокола. Вы должны реализовать все необходимые методы в протоколе. В этом случае отсутствует метод witDidGraspIntent:entities:body:error:.

Вы спросите: «Должен ли я добавить новый -void ??» Под этим, если вы имеете в виду, следует ли добавить реализацию метода witDidGraspIntent:entities:body:error:, ответ ДА!

Я раньше не использовал SDK wit.ai. Возможно, вы захотите отредактировать свой вопрос и попросить людей, которые использовали этот SDK, помочь в реализации метода, если вы не можете понять, как это сделать самостоятельно. Вы также можете добавить «(используя wit.ai SDK)» к заголовку вопроса, чтобы люди, знакомые с этой структурой, заметили ваш вопрос.

person Duncan C    schedule 12.01.2015
comment
Теперь работает. С реализацией этого метода проблем нет. - person laribiwalid; 13.01.2015