MonoMacのドキュメントによると、署名NSWorkspace.RecycleUrlsは次のとおりです。
[MonoMac.Foundation.Export("recycleURLs:completionHandler:")]
public virtual void RecycleUrls (MonoMac.Foundation.NSDictionary urls, NSWorkspaceUrlHandler completionHandler)
の署名に関するAppleのドキュメントにNSWorkspaceよると、次のrecycleURLs:completionHandlerとおりです。
- (void)recycleURLs:(NSArray *)URLs completionHandler:(void (^)(NSDictionary *newURLs, NSError *error))handler
リサイクルしたいURLの配列があります。
ここで私は困惑しています-Appleのドキュメントには、最初のパラメータはですがNSArray、MonoMacは。を望んでいると書かれていますNSDictionary。NSDictionary必要なキーと値を作成するためのすべての関数(当然のことながら)が、私は値しか持っていません。
MonoMacの実装RecycleUrls(以下に再現)を取得し、それを使用するように書き直す以外に行うべきことはありNSArrayますか?
[Export("recycleURLs:completionHandler:")]
public unsafe virtual void RecycleUrls(NSDictionary urls, NSWorkspaceUrlHandler completionHandler)
{
if (urls == null)
{
throw new ArgumentNullException("urls");
}
if (completionHandler == null)
{
throw new ArgumentNullException("completionHandler");
}
BlockLiteral blockLiteral = default(BlockLiteral);
blockLiteral.SetupBlock(NSWorkspace.static_InnerNSWorkspaceUrlHandler, completionHandler);
if (this.IsDirectBinding)
{
Messaging.void_objc_msgSend_IntPtr_IntPtr(base.Handle, NSWorkspace.selRecycleURLsCompletionHandler_, urls.Handle, (IntPtr)((void*)(&blockLiteral)));
}
else
{
Messaging.void_objc_msgSendSuper_IntPtr_IntPtr(base.SuperHandle, NSWorkspace.selRecycleURLsCompletionHandler_, urls.Handle, (IntPtr)((void*)(&blockLiteral)));
}
blockLiteral.CleanupBlock();
}