首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSApplescript不接受initWithContentsOfURL

NSApplescript不接受initWithContentsOfURL
EN

Stack Overflow用户
提问于 2013-01-02 22:24:40
回答 1查看 912关注 0票数 0

我是新来的,所以请容忍我。我的问题在以下代码中:

AppleScriptController.h

代码语言:javascript
复制
#import <Foundation/Foundation.h>
#import <Cocoa/Cocoa.h>        
@interface AppleScriptController : NSObject    
-(void)test;
@end

AppleScriptController.m

代码语言:javascript
复制
#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

代码语言:javascript
复制
#import <Foundation/Foundation.h>
#import "AppleScriptController.h"

AppleScriptController *myScript = [[AppleScriptController alloc] init];
[myScript test];

当我运行它时,我得到以下错误消息:线程1:程序接收信号:"SIGABRT“

代码语言:javascript
复制
NSAppleScript *script2 = [[NSAppleScript alloc]
                          initWithContentsOfURL:[NSURL fileURLWithPath:path] 
                          error:nil];    Thread 1: Program received signal: "SIGABRT"

并获得以下错误代码:

2013年-01-02 23:09:09.269 Test81627:707 *终止应用程序 由于“NSInvalidArgumentException”异常, 原因:'* -NSURL initFileURLWithPath::nil字符串 参数‘ *第一次抛出调用堆栈: ( 0 CoreFoundation 0x00007fff8db7df56 __exceptionPreprocess + 198 1 libobjc.A.dylib 0x00007fff95dfbd5e objc_exception_throw + 43 2 CoreFoundation 0x00007fff8db7dd8a +NSException引发:格式:参数:+ 106 3 CoreFoundation 0x00007fff8db7dd14 +NSException引发:格式:+ 116 4基金会0x00007fff8fd6ae40 -NSURL(NSURL) initFileURLWithPath:+ 78 5基金会0x00007fff8fd6add9 +NSURL(NSURL) fileURLWithPath:+ 47 6 Test8 0x0000000100000d9d -AppleScriptController试验+ 205 7 Test8 0x0000000100000cac main + 108 8 Test8 0x0000000100000c34 start + 52 9?0x00000000000001 0x0 +1 ) 终止调用抛出异常共享库应用加载规则所有 当前语言: auto;当前目标-c (gdb)

当我将m文件更改为initWithSource时,程序运行良好:

代码语言:javascript
复制
NSAppleScript *script1 = [[NSAppleScript alloc] initWithSource:@"beep 10"];
[script1 executeAndReturnError:nil];

我在OSX10.7.5上运行XCode 4.2.1

请告诉我哪里出了问题。我确信这是某种新手犯的错误,但我似乎找不到。

感谢您的任何建议!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-02 22:39:14

从错误代码:

代码语言:javascript
复制
reason: '* -[NSURL initFileURLWithPath:]: nil string

所以在这里:

代码语言:javascript
复制
NSString *path = [[NSBundle mainBundle] pathForResource:@"beep" 
                                             ofType:@"scpt"];    
NSAppleScript *script2 = [[NSAppleScript alloc]
                      initWithContentsOfURL:[NSURL fileURLWithPath:path] 
                      error:nil];  

道路是零的。因此,对于所有可能的情况,文件都不在包中。将其添加为项目的目标。

如何做

例如,最后一天,我需要在包中添加鲨鱼的图像,这是如何做到的:

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14130213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档