[ NSObject : AnyObject]! って何? [Swift]
NSWorkspaceのduplicateURLs:completionHandler:を見ていると
func duplicateURLs(_ URLs: [AnyObject], completionHandler completionHandler: (([NSObject : AnyObject]!, NSError!) -> Void)?)
[NSObject : AnyObject] ん?
なにこれ?
とりあえず、ファイル複製はできるようだが[NSObject : AnyObject]これはなんだ?
let theWorkspace : NSWorkspace = NSWorkspace.sharedWorkspace() theWorkspace.duplicateURLs(openPanel.URLs, completionHandler: { ([ NSObject : AnyObject]!, err) in })
うーん、とりあえず辞書っぽいなあ。[NSObject : AnyObject]はDictionaryに変換できるらしい。
これで取れるかな
let theWorkspace : NSWorkspace = NSWorkspace.sharedWorkspace() theWorkspace.duplicateURLs(openPanel.URLs, completionHandler: { (dic : [ NSObject : AnyObject]!, err) in NSLog("%@", dic.description) })
->[file:///Users/userName/Desktop/%E2%99%A1: file:///Users/userName/Desktop/%E2%99%A1%20copy%205]
複製元のファイルのURLと複製後のファイルのURLか。
複製元のファイルのURLがキーになって、複製後のファイルのURLが値になっているみたいだ。
よくわからんが、一応値はとれた。
let theWorkspace : NSWorkspace = NSWorkspace.sharedWorkspace() theWorkspace.duplicateURLs(openPanel.URLs, completionHandler: { (dic : [ NSObject : AnyObject]!, err) in NSLog("%@", (dic as Dictionary).description) //let values: Array = Array(dic.keys) let values: Array = Array(dic.values) for (index, value) in enumerate(values) { println("index: \(index), value: \(value)") } })