Есть ли песочница FxPlugs внутри Final Cut Pro X?
Я работаю с плагинами для Final Cut Pro X и мне нужно отправить данные в другую программу. До сих пор я мог сделать это с помощью NSDistributedNotificationCenter
но это не должно работать. Согласно странице Apple Developer:
Важно: приложения-песочницы могут отправлять уведомления, только если они не содержат словаря. Если отправляющее приложение находится в изолированной программной среде приложения, поле InInfo должно быть равно нулю.
Final Cut Pro X продается в Mac App Store, и все, что я видел, указывает на его "песочницу". Кто-нибудь знает, есть ли ошибка в песочнице FCPX, в распределенном центре уведомлений, или FxPlugs запускаются вне песочницы? Я предпочитаю, чтобы критический код не полагался на то, что работает, но не должно.
Мой код отправки уведомления в FxPlug:
NSDistributedNotificationCenter* dist = [NSDistributedNotificationCenter defaultCenter];
NSDictionary* dict = [NSDictionary dictionaryWithObjectsAndKeys:@"First value", @"key1",
@"Second value from FCPX", @"key2", @"Third & final value", @"3key3", nil];
[dist postNotificationName:@"FCPX plugin"
object:@"SFPCommApp"
userInfo:dict];
И получение кода в другом приложении:
m_center = [NSDistributedNotificationCenter defaultCenter];
[m_center addObserver:self
selector:@selector(GetNotification:)
name:nil
object:listenTo];
// in GetNotification
NSString *notifString = [notification description];
NSString *dispString = @"Got notification from Final Cut Pro X";
dispString = [dispString stringByAppendingString:notifString];
// dispString displayed in a dialog
Он работает в отладчике Xcode и полностью вне Xcode (оба запускаются из Finder). Кроме того, мне нужно поддерживать 10.6, поэтому не могу использовать XPC.
Идеи о других методах отправки данных из FxPlug? Спасибо!
1 ответ
Если вы загружаете последнюю версию FxPlug SDK (3.0) с сайта разработчика Apple, она содержит обновленные примеры создания FxPlug с XPC. Final Cut Pro X пока не изолирован в песочнице, но, скорее всего, это произойдет в будущем.