Не могу инициализировать параметр, и я не понимаю, почему - PullRequest
5 голосов
/ 29 ноября 2011

Я получаю эту ошибку:

Cannot initialize a parameter of type 'id<ZXingDelegate>'
with an lvalue of type 'FirstViewController *const __strong'

Из этой строки кода:

ZXingWidgetController *widController =
    [[ZXingWidgetController alloc] initWithDelegate:self showCancel:YES
                                                           OneDMode:NO];

Как мне это решить?

Ответы [ 3 ]

5 голосов
/ 05 декабря 2011

Благодаря комментарию Macmade мне удалось решить проблему.Я должен был написать это так:

ZXingWidgetController *widController =
    [[ZXingWidgetController alloc] initWithDelegate:***(id)** self showCancel:YES 
                                                                     OneDMode:NO];

Где (id) - это актерский состав, о котором он говорил.

1 голос
/ 10 декабря 2012

используйте этот код отключения строки для этой проблемы

ZXingWidgetController *widController = [[ZXingWidgetController alloc] initWithDelegate:(id<ZXingDelegate>)self showCancel:YES OneDMode:NO];
0 голосов
/ 07 августа 2014

Если я правильно понимаю, проблема не в том, что вам нужно мостовое преобразование, скорее, ваш класс FirstViewController не определяет класс интерфейса ZXingDelegate, поэтому проблема.

ZXingDelegate - это (основано на названии, которое я предполагаю) интерфейскласс (протокол или делегат), который объявляет функции (интерфейс), которые должны быть определены классом, который его наследует (если они не являются @optional).Что-то вроде чисто виртуальных (абстрактных) классов в C ++.

Так что вам понадобится в вашем заголовочном файле что-то вроде этого:

@interface FirstViewController : UIViewController <ZXingDelegate>

И в вашем файле .m, что-то вроде этого:

@implementation FirstViewController

//......
-(void) SomeFunctionThat_ZXingDelegate_declares
{
    // .... do something here....
}
//......


@end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...