我知道这是一个相对简单的问题,但我无法弄清楚如何解决这个问题:
我的一个视图将收到一个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];
}
我知道这将是一个相对简单的解决方案,但我陷入困境,无法弄明白。谢谢你的时间!