Я пытаюсь добавить тривиальную поддержку AppleScript в приложение Какао. Приложение периодически выполняет проверку, и я просто хочу, чтобы оно выполняло ее по запросу.
Я пытаюсь следовать примеру Apple SimpleScriptingVerbs .
Я создал подклассы NSScriptCommand
следующим образом:
Заголовок:
#import
@interface rdrNotifierUpdateCommand : NSScriptCommand {
}
-(id)performDefaultImplementation;
@end
Реализация:
#import "rdrNotifierUpdateCommand.h"
#import "rdrNotifierAppDelegate.h"
@implementation rdrNotifierUpdateCommand
-(id)performDefaultImplementation {
NSLog(@"Works at last");
[((rdrNotifierAppDelegate *)[[NSApplication sharedApplication] delegate])
checkForNewItems]; // This just fires the timer
return nil;
}
@end
Мой файл .sdef
выглядит следующим образом (и проблема, кажется, есть, но я не могу ее найти):
Info.plist
настроен соответствующим образом.
Но когда я пытаюсь запустить следующий сценарий в редакторе AppleScript:
tell application "rdrNotifier"
do update
end tell
Я получаю сообщение об ошибке, что переменная "update" не определена.
Я могу открыть словарь для своего приложения из редактора AppleScript (т.е. успешно зарегистрирован).
Изменить: найдено решение
Проблема действительно была в файле sdef
: я не указывал, что приложение может отвечать на команду. Мое окончательное определение выглядит следующим образом (код Obj-C без изменений):
Любые улучшения / советы / критические замечания по-прежнему приветствуются. print_r ($ сообщений); Почему я его получил? Barii \ BlogBundle \ Entity \ Post Object ([id: Barii \ BlogBundle \ Entity \ Post: private] => 1 [title: ...
$posts = $em->find('Application\BlogBundle\Entity\Post',1);
print_r ($posts);
Почему я получил его?
Barii\BlogBundle\Entity\Post Object ( [id:Barii\BlogBundle\Entity\Post:private] => 1 [title:Application\BlogBundle\Entity\Post:private] => something [body:Application\BlogBundle\Entity\Post:private] => content )
вместо простого массива вроде этого:
array ( [id] => 1,
[title] => "something",
[body] => "content" )
Я использую его с Symfony 2.