Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 目标c NSURL可能对+;initFileURLWithPath_Objective C_Cocoa - Fatal编程技术网

Objective c 目标c NSURL可能对+;initFileURLWithPath

Objective c 目标c NSURL可能对+;initFileURLWithPath,objective-c,cocoa,Objective C,Cocoa,ApplicationIDFinishLaunching函数中有两行代码: NSString *targetFilePath = @"/Users/bob/Documents/About_Stacks.pdf"; NSURL *targetFileURL = [NSURL initFileURLWithPath:targetFilePath]; 我在第二行得到警告(标题) 我不知道我做错了什么。这是一个荒谬的简单应用程序。。。我读过其他关于重新排序方法的文章,但我使用的是NS提供的类,而不是我

ApplicationIDFinishLaunching函数中有两行代码:

NSString *targetFilePath = @"/Users/bob/Documents/About_Stacks.pdf";
NSURL *targetFileURL = [NSURL initFileURLWithPath:targetFilePath];
我在第二行得到警告(标题)

我不知道我做错了什么。这是一个荒谬的简单应用程序。。。我读过其他关于重新排序方法的文章,但我使用的是NS提供的类,而不是我自己的类

任何建议都将不胜感激


谢谢。

该警告是正常的,因为方法
initFileURLWithPath
是一个实例方法,而不是类方法。正确的使用方法是:

NSString *targetFilePath = @"/Users/bob/Documents/About_Stacks.pdf";
NSURL *targetFileURL = [[NSURL alloc] initFileURLWithPath:targetFilePath];

您必须先
alloc
an
NSURL

NSURL *targetFileURL = [[NSURL alloc] initFileURLWithPath:targetFilePath];

如果该方法以“init”开头,则意味着应该在已分配的实例上而不是在类本身上调用它。

initFileURLWithPath:
是一个实例方法,而不是类方法,因此必须首先使用
alloc
创建类的实例。因此:

NSString* targetFilePath = @"/Users/bob/Documents/About_Stacks.pdf";
NSURL* targetFileURL = [[NSURL alloc] initFileURLWithPath:targetFilePath];
如果要使用便利方法,请使用
fileURLWithPath:
,以便:

NSURL* targetFileURL = [NSURL fileURLWithPath:targetFilePath];

我认为问题在于NSURL必须首先使用alloc创建。 仅仅宣布这是行不通的

此外,我认为您需要稍后释放它,否则将有一个潜在的泄漏

 NSURL *targetFileURL = [[NSURL alloc] initFileURLWithPath:targetFilePath];
//做点什么

[targetFileURL release ];