2012-05-16 4 views
0

Я пытаюсь создать базовое приложение для какао, которое использует Growl.Есть ли способ использовать GrowlApplicationBridge без NSClassFromString?

Каждый раз, когда я хочу использовать GrowlApplicationBridge я должен использовать что-то вроде

Class GAB = NSClassFromString(@"GrowlApplicationBridge"); 
[GAB performSelector:@selector(setGrowlDelegate:) withObject:self]; 

Я хотел бы иметь возможность просто использовать

[GrowlApplicationBridge setGrowlDelegate:self]; 

Вот ошибка компилятора, что я получаю, когда я пытаюсь поведение, которое я хочу:

Undefined symbols for architecture x86_64: "_OBJC_CLASS_$_GrowlApplicationBridge", referenced from: objc-class-ref in StatusMenuAppDelegate.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

ответ

2

До тех пор, пока вы импортируете <Growl/Growl.h> в верхней части этого файла и привязывая структуру к вашему приложению, вы должны иметь возможность использовать [GrowlApplicationBridge setGrowlDelegate:self] просто отлично.

Проверьте верхнюю часть файла и убедитесь, что он импортирует его, и проверьте фазу сборки ссылок на объекты Link Libraries and Frameworks и убедитесь, что вы ее связываете.

+0

Спасибо :) Я копировал рамку вместо ее связывания. – Cyrus

+0

@ Кир: Вам нужно сделать обе эти вещи. Если вы не скопируете его, ваше приложение не будет запущено, потому что ваши пользователи его не будут использовать. Если вы не связываете его, копирование было напрасным. Вы должны скопировать его (чтобы он присутствовал на машинах пользователей) и ссылку на него (чтобы ваше приложение действительно использовало его). –

+0

Получил это. Спасибо за вашу помощь. – Cyrus

Смежные вопросы