私はこれに慣れていないので、ご容赦ください。私の問題は次のコードにあります。
AppleScriptController.h
#import <Foundation/Foundation.h>
#import <Cocoa/Cocoa.h>
@interface AppleScriptController : NSObject
-(void)test;
@end
AppleScriptController.m
#import "AppleScriptController.h"
@implementation AppleScriptController
-(void)test{
NSString *path = [[NSBundle mainBundle] pathForResource:@"beep"
ofType:@"scpt"];
NSAppleScript *script2 = [[NSAppleScript alloc]
initWithContentsOfURL:[NSURL fileURLWithPath:path]
error:nil];
[script2 executeAndReturnError:nil];
}
@end
(beep.scpt のコピーはサポート ファイルにあります)
main.m
#import <Foundation/Foundation.h>
#import "AppleScriptController.h"
AppleScriptController *myScript = [[AppleScriptController alloc] init];
[myScript test];
実行すると、次のエラー メッセージが表示されます: Thread 1: Program received signal: "SIGABRT"
NSAppleScript *script2 = [[NSAppleScript alloc]
initWithContentsOfURL:[NSURL fileURLWithPath:path]
error:nil]; Thread 1: Program received signal: "SIGABRT"
次のエラーコードを取得します。
2013-01-02 23:09:09.269 Test8[1627:707] ※アプリ終了
キャッチされない例外「NSInvalidArgumentException」が原因で、
reason: ' * -[NSURL initFileURLWithPath:]: nil 文字列
パラメータ'
*最初のスロー コール スタック:
(
0 CoreFoundation 0x00007fff8db7df56 __exceptionPreprocess + 198
1 libobjc.A.dylib 0x00007fff95dfbd5e objc_exception_throw + 43
2 CoreFoundation 0x00007fff8db7dd8a +[NSException raise:format:arguments:] + 106
3 CoreFoundation 0x00007fff8db7dd14 +[NSException raise:format:] + 116
4 Foundation 0x00007fff8fd6ae40 -[NSURL(NSURL) initFileURLWithPath:] + 78
5 Foundation 0x00007fff8fd6add9 +[NSURL(NSURL) fileURLWithPath:] + 47
6 Test8 0x0000000100000d9d -[AppleScriptController テスト] + 205
7 Test8 0x0000000100000cac メイン + 108
8 Test8 0x0000000100000c34 開始 + 52
9??? 0x0000000000000001 0x0 + 1
)
呼び出されて終了し、例外をスローしますsharedlibrary apply-load-rules all
現在の言語: auto; 現在、目的の c
(gdb)
m-file を initWithSource に変更すると、プログラムは正常に動作します。
NSAppleScript *script1 = [[NSAppleScript alloc] initWithSource:@"beep 10"];
[script1 executeAndReturnError:nil];
OS X 10.7.5 で XCode 4.2.1 を実行しています
私が間違っていたところを教えてください。ある種の初心者の間違いだと確信していますが、見つけることができないようです。
どんなアドバイスもありがたく受け取った!