我是新手,所以请多多包涵。我的问题出在以下代码中:
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 的副本在支持文件中)
主文件
#import <Foundation/Foundation.h>
#import "AppleScriptController.h"
AppleScriptController *myScript = [[AppleScriptController alloc] init];
[myScript test];
当我运行它时,我收到以下错误消息:线程 1:程序收到信号:“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”,
原因:' * -[NSURL initFileURLWithPath:]: nil 字符串
范围'
*首先抛出调用栈:
(
0 核心基础 0x00007fff8db7df56 __exceptionPreprocess + 198
1 libobjc.A.dylib 0x00007fff95dfbd5e objc_exception_throw + 43
2 核心基础 0x00007fff8db7dd8a +[NSException raise:format:arguments:] + 106
3 CoreFoundation 0x00007fff8db7dd14 +[NSException raise:format:] + 116
4 基础 0x00007fff8fd6ae40 -[NSURL(NSURL) initFileURLWithPath:] + 78
5 基础 0x00007fff8fd6add9 +[NSURL(NSURL) 文件URLWithPath:] + 47
6 Test8 0x0000000100000d9d -[AppleScriptController 测试] + 205
7 测试8 0x0000000100000cac 主要 + 108
8 测试8 0x0000000100000c34 开始 + 52
9 ???0x0000000000000001 0x0 + 1
)
终止调用抛出异常sharedlibrary apply-load-rules all
当前语言:自动;目前客观-c
(gdb)
当我将 m 文件更改为 initWithSource 时,程序运行良好:
NSAppleScript *script1 = [[NSAppleScript alloc] initWithSource:@"beep 10"];
[script1 executeAndReturnError:nil];
我在 OS X 10.7.5 上运行 XCode 4.2.1
请告诉我我哪里出错了。我确定这是某种新手错误,但我似乎无法找到它。
任何建议都感激不尽!