Cocoa アプリケーションを作成しており、Scripting Bridge を使用してアプリケーションから Numbers スプレッドシートを生成したいと考えています。Numbers.h ファイルを生成し、Apple のドキュメントの指示に従って ScriptingBridge.framework をリンクしました。以下は、単純に Numbers ドキュメントを作成して保存するために使用しているコードです。
NSString *path = @"/Users/username/Desktop/Test.numbers";
NumbersApplication *numbers = [SBApplication applicationWithBundleIdentifier:@"com.apple.iWork.Numbers"];
[numbers activate];
NumbersDocument *document = [[[numbers classForScriptingClass:@"document"] alloc] initWithProperties:[NSDictionary dictionaryWithObjectsAndKeys:project.title, @"name", nil]];
[[numbers documents] addObject:document];
[document saveAs:nil in:[NSURL URLWithString:path]];
コードがコンパイルされて実行され、saveAs:in: メソッドを試すと、次のエラーが発生します。
-[SBProxyByClass saveAs:in:]: オブジェクトはまだコンテナに追加されていません。セレクタが認識されません [self = 0x2005912e0]
[numbers documents] 配列にドキュメントを追加する以外に何かしなければならないことはありますか?
私は AppleScript を使用しても構いませんが、できれば Scripting Bridge を使用したいと思っています。