传递引用并从另一个控制器复制对象。物体不断消失

时间:2012-06-02 14:51:29

标签: objective-c xcode macos

我知道这是一个相对简单的问题,但我无法弄清楚如何解决这个问题:

我的一个视图将收到一个dragOperation,performDragOperation方法应该将NSURL传递给我的AppDelegate,它将它放在mutArray中......

问题是,我传递了一个引用,并且该对象在performDragOperation完成时消失了。所以我尝试了几件事:

在performDragOperation中:

//Puts the reference itself in the folderPaths Array
AppDelegate *appDelegate = [NSApp delegate];
[[appDelegate folderPaths] addObject:referenceTotheNSURLObject];
/* tried creating a NSString and putting it in too. Same result because local variables will disappear */

所以我在AppDelegate中创建了一个方法并尝试了不同的东西:

- (void)addFilePath:(NSURL *)filePath {
    NSURL *copyOfURL = [filePath copy];
    [[self folderPaths] addObject:copyOfURL];
}

这对我来说是最有意义的,也是我能想到为什么这不起作用的唯一原因,因为copyOfURL本身是一个指针,它指向一个localObject,它会在addFilePath方法完成时消失?但我不允许使用

NSURL copyOfURL = [filePath copy];

我还尝试重新创建一个NSString对象。相同的结果。

- (void)addFilePath:(NSURL *)filePath {
    NSString *pathString = [filePath absoluteString];
    [[self folderPaths] addObject:pathString];
}

我知道这将是一个相对简单的解决方案,但我陷入困境,无法弄明白。谢谢你的时间!

0 个答案:

没有答案