これは比較的簡単な質問であることはわかっていますが、この問題を解決する方法がわかりません。
ビューの 1 つが 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 自体がポインターであり、addFilePath メソッドが終了した瞬間に消える localObject を指しているためです。しかし、私は使用することを許可されていません
NSURL copyOfURL = [filePath copy];
NSString オブジェクトの再作成も試みました。同じ結果です。
- (void)addFilePath:(NSURL *)filePath {
NSString *pathString = [filePath absoluteString];
[[self folderPaths] addObject:pathString];
}
比較的単純な解決策になることはわかっていますが、行き詰まっていてわかりません。御時間ありがとうございます!