<?xml version="1.0" encoding="UTF-8" ?><rdf:RDF 
  xmlns="http://purl.org/rss/1.0/"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xml:lang="ja">
  <channel rdf:about="http://www11.atwiki.jp/cocoareferencejp/">
    <title>Cocoaリファレンス日本語化計画</title>
    <link>http://www11.atwiki.jp/cocoareferencejp/</link>
    <description>Cocoaリファレンス日本語化計画</description>

    <dc:language>ja</dc:language>
    <dc:date>2011-04-13T01:23:39+09:00</dc:date>

    <items>
      <rdf:Seq>
                <rdf:li rdf:resource="http://www11.atwiki.jp/cocoareferencejp/pages/109.html" />
                <rdf:li rdf:resource="http://www11.atwiki.jp/cocoareferencejp/pages/118.html" />
                <rdf:li rdf:resource="http://www11.atwiki.jp/cocoareferencejp/pages/119.html" />
                <rdf:li rdf:resource="http://www11.atwiki.jp/cocoareferencejp/pages/117.html" />
                <rdf:li rdf:resource="http://www11.atwiki.jp/cocoareferencejp/pages/116.html" />
                <rdf:li rdf:resource="http://www11.atwiki.jp/cocoareferencejp/pages/115.html" />
                <rdf:li rdf:resource="http://www11.atwiki.jp/cocoareferencejp/pages/114.html" />
                <rdf:li rdf:resource="http://www11.atwiki.jp/cocoareferencejp/pages/88.html" />
                <rdf:li rdf:resource="http://www11.atwiki.jp/cocoareferencejp/pages/113.html" />
                <rdf:li rdf:resource="http://www11.atwiki.jp/cocoareferencejp/pages/112.html" />
              </rdf:Seq>
    </items>
	
		
    
  </channel>
    <item rdf:about="http://www11.atwiki.jp/cocoareferencejp/pages/109.html">
    <title>NSFileManager Class Reference</title>
    <link>http://www11.atwiki.jp/cocoareferencejp/pages/109.html</link>
    <description>
      //0.下はいじらない
Tags:&amp;tags()

//1.以下に続けてADCでの分類を書き込みリンクする。「NSHogeのクラスリファレンス」、まで書く
&amp;link_toppage(トップ) &gt; [[リファレンス]] &gt; データ管理：ファイル管理 &gt; NSFileManagerクラスリファレンス

//2.リファレンス日本語名を見出し1で書く。wiki内のリンクで用いられるタイトルになる。翻訳元にもリンクする。
*NSFileManager クラスリファレンス [[翻訳元&gt;http://developer.apple.com/mac/library/documentation/Cocoa/Reference/Foundation/Classes/NSFileManager_Class/Reference/Reference.html]]

//3.翻訳元の最終更新日を書く
このページの最終更新：&amp;date()
ADCの最終更新：2010-05-11

//4.以下、用語は頻繁に出てくる単語の翻訳ガイドラインを参照しながら翻訳する。
//5.ある程度書き終わったらタグ（未完または完成、カテゴリ名×3）をつけて下線を引く(広告との境)。これで終了。それではGood Luck!
//本文開始↓

|BGCOLOR(#eef):継承するクラス|BGCOLOR(#eef):[[NSObject&gt;NSObject Class Reference]]|
|準拠しているプロトコル|[[NSObject (NSObject)&gt;NSObject Protocol Reference]]|
|BGCOLOR(#eef):フレームワーク|BGCOLOR(#eef):/System/Library/Frameworks/[[Foundation.framework&gt;Foundation Framework]]|
|使用可能な環境|Mac OS X v10.0以降|
|BGCOLOR(#eef):宣言ファイル|BGCOLOR(#eef): NSFileManager.h|
|コンパニオンガイド|[[Low-Level File Management Programming Topics]]|
|TOP:BGCOLOR(#eef):サンプルコード|BGCOLOR(#eef):[[CocoaSlides]]&amp;br()[[Core Data HTML Store]]&amp;br()[[CoreRecipes]]&amp;br()[[ImageKitDemo]]&amp;br()[[Quartz Composer WWDC 2005 TextEdit]]|

**概観(Overview)
----
　NSFileManagerクラスは、一般的なファイル操作を可能にし、アプリケーションをファイルシステムから独立させます。
　Mac OS X v10.5以降もうこのクラスをシングルトンインスタンスとして使う制限はすでになくなっています。NSFileManagerクラスのインスタンスは[[NSFileManager alloc] init]を使った時に、スレッドセーフを考慮して作られます。

**このクラスでできること(Tasks)
----
***ファイルマネージャの生成(Creating a File Manager)
&amp;space(8)&amp;link_anchor(init){– init}
&amp;space(8)&amp;link_anchor(defaultManager){+ defaultManager}
***アイテムの移動(Moving an Item)
&amp;space(8)&amp;link_anchor(fileManager:shouldMoveItemAtPath:toPath:){– fileManager:shouldMoveItemAtPath:toPath:}  &amp;color(#888855){&amp;italic(){delegate method}}
&amp;space(8)&amp;link_anchor(fileManager:shouldMoveItemAtURL:toURL:){– fileManager:shouldMoveItemAtURL:toURL:}  &amp;color(#888855){&amp;italic(){delegate method}}
&amp;space(8)&amp;link_anchor(moveItemAtPath:toPath:error:){– moveItemAtPath:toPath:error:}
&amp;space(8)&amp;link_anchor(moveItemAtURL:toURL:error:){– moveItemAtURL:toURL:error:}
&amp;space(8)&amp;link_anchor(fileManager:shouldProceedAfterError:movingItemAtPath:toPath:){– fileManager:shouldProceedAfterError:movingItemAtPath:toPath:}  &amp;color(#888855){&amp;italic(){delegate method}}
&amp;space(8)&amp;link_anchor(fileManager:shouldProceedAfterError:movingItemAtURL:toURL:){– fileManager:shouldProceedAfterError:movingItemAtURL:toURL:}  &amp;color(#888855){&amp;italic(){delegate method}}
&amp;space(8)&amp;link_anchor(movePath:toPath:handler:){– movePath:toPath:handler:} &amp;color(#dd0000){Deprecated in Mac OS X v10.5}
***アイテムの複製(Copying an Item)
&amp;space(8)&amp;link_anchor(fileManager:shouldCopyItemAtPath:toPath:){– fileManager:shouldCopyItemAtPath:toPath:}  &amp;color(#888855){&amp;italic(){delegate method}}
&amp;space(8)&amp;link_anchor(fileManager:shouldCopyItemAtURL:toURL:){– fileManager:shouldCopyItemAtURL:toURL:}  &amp;color(#888855){&amp;italic(){delegate method}}
&amp;space(8)&amp;link_anchor(copyItemAtPath:toPath:error:){– copyItemAtPath:toPath:error:}
&amp;space(8)&amp;link_anchor(copyItemAtURL:toURL:error:){– copyItemAtURL:toURL:error:}
&amp;space(8)&amp;link_anchor(fileManager:shouldProceedAfterError:copyingItemAtPath:toPath:){– fileManager:shouldProceedAfterError:copyingItemAtPath:toPath:}  &amp;color(#888855){&amp;italic(){delegate method}}
&amp;space(8)&amp;link_anchor(fileManager:shouldProceedAfterError:copyingItemAtURL:toURL:){– fileManager:shouldProceedAfterError:copyingItemAtURL:toURL:}  &amp;color(#888855){&amp;italic(){delegate method}}
&amp;space(8)&amp;link_anchor(copyPath:toPath:handler:){– copyPath:toPath:handler:} &amp;color(#dd0000){Deprecated in Mac OS X v10.5}
***アイテムの削除(Removing an Item)
&amp;space(8)&amp;link_anchor(fileManager:shouldRemoveItemAtPath:){– fileManager:shouldRemoveItemAtPath:}  &amp;color(#888855){&amp;italic(){delegate method}}
&amp;space(8)&amp;link_anchor(fileManager:shouldRemoveItemAtURL:){– fileManager:shouldRemoveItemAtURL:}  &amp;color(#888855){&amp;italic(){delegate method}}
&amp;space(8)&amp;link_anchor(removeItemAtPath:error:){– removeItemAtPath:error:}
&amp;space(8)&amp;link_anchor(removeItemAtURL:error:){– removeItemAtURL:error:}
&amp;space(8)&amp;link_anchor(fileManager:shouldProceedAfterError:removingItemAtPath:){– fileManager:shouldProceedAfterError:removingItemAtPath:}  &amp;color(#888855){&amp;italic(){delegate method}}
&amp;space(8)&amp;link_anchor(fileManager:shouldProceedAfterError:removingItemAtURL:){– fileManager:shouldProceedAfterError:removingItemAtURL:}  &amp;color(#888855){&amp;italic(){delegate method}}
&amp;space(8)&amp;link_anchor(removeFileAtPath:handler:){– removeFileAtPath:handler:} &amp;color(#dd0000){Deprecated in Mac OS X v10.5}
***アイテムの作成(Creating an Item)
&amp;space(8)&amp;link_anchor(createDirectoryAtPath:withIntermediateDirectories:attributes:error:){– createDirectoryAtPath:withIntermediateDirectories:attributes:error:}
&amp;space(8)&amp;link_anchor(createFileAtPath:contents:attributes:){– createFileAtPath:contents:attributes:}
&amp;space(8)&amp;link_anchor(createDirectoryAtPath:attributes:){– createDirectoryAtPath:attributes:} &amp;color(#dd0000){Deprecated in Mac OS X v10.5}
***アイテムの連結(Linking an Item)
&amp;space(8)&amp;link_anchor(fileManager:shouldLinkItemAtPath:toPath:){– fileManager:shouldLinkItemAtPath:toPath:}  &amp;color(#888855){&amp;italic(){delegate method}}
&amp;space(8)&amp;link_anchor(fileManager:shouldLinkItemAtURL:toURL:){– fileManager:shouldLinkItemAtURL:toURL:}  &amp;color(#888855){&amp;italic(){delegate method}}
&amp;space(8)&amp;link_anchor(linkItemAtPath:toPath:error:){– linkItemAtPath:toPath:error:}
&amp;space(8)&amp;link_anchor(linkItemAtURL:toURL:error:){– linkItemAtURL:toURL:error:}
&amp;space(8)&amp;link_anchor(fileManager:shouldProceedAfterError:linkingItemAtPath:toPath:){– fileManager:shouldProceedAfterError:linkingItemAtPath:toPath:}  &amp;color(#888855){&amp;italic(){delegate method}}
&amp;space(8)&amp;link_anchor(fileManager:shouldProceedAfterError:linkingItemAtURL:toURL:){– fileManager:shouldProceedAfterError:linkingItemAtURL:toURL:}  &amp;color(#888855){&amp;italic(){delegate method}}
&amp;space(8)&amp;link_anchor(linkPath:toPath:handler:){– linkPath:toPath:handler:} &amp;color(#dd0000){Deprecated in Mac OS X v10.5}
***シンボリックリンクの操作(Symbolic-Link Operations)
&amp;space(8)&amp;link_anchor(createSymbolicLinkAtPath:withDestinationPath:error:){– createSymbolicLinkAtPath:withDestinationPath:error:}
&amp;space(8)&amp;link_anchor(destinationOfSymbolicLinkAtPath:error:){– destinationOfSymbolicLinkAtPath:error:}
&amp;space(8)&amp;link_anchor(createSymbolicLinkAtPath:pathContent:){– createSymbolicLinkAtPath:pathContent:} &amp;color(#dd0000){Deprecated in Mac OS X v10.5}
&amp;space(8)&amp;link_anchor(pathContentOfSymbolicLinkAtPath:){– pathContentOfSymbolicLinkAtPath:} &amp;color(#dd0000){Deprecated in Mac OS X v10.5}
***ファイル操作の制御(Handling File Operations)
　このセクションで説明しているメソッドはNSFileManagerのいくつかのメソッドに渡されるコールバックハンドラによって定義されます。これらのメソッドはMac OS X v10.5では非推奨のメソッドです。代わりに対応する委譲メソッドを使用して下さい。
&amp;space(8)&amp;link_anchor(fileManager:shouldProceedAfterError:){– fileManager:shouldProceedAfterError:}  &amp;color(#888855){&amp;italic(){delegate method}} &amp;color(#dd0000){Deprecated in Mac OS X v10.5}
&amp;space(8)&amp;link_anchor(fileManager:willProcessPath:){– fileManager:willProcessPath:}  &amp;color(#888855){&amp;italic(){delegate method}} &amp;color(#dd0000){Deprecated in Mac OS X v10.5}
***ファイルコンテンツの取得と比較(Getting and Comparing File Contents)
&amp;space(8)&amp;link_anchor(contentsAtPath:){– contentsAtPath:}
&amp;space(8)&amp;link_anchor(contentsEqualAtPath:andPath:){– contentsEqualAtPath:andPath:}
***ディレクトリコンテンツの検索(Discovering Directory Contents)
&amp;space(8)&amp;link_anchor(mountedVolumeURLsIncludingResourceValuesForKeys:options:){– mountedVolumeURLsIncludingResourceValuesForKeys:options:}
&amp;space(8)&amp;link_anchor(contentsOfDirectoryAtURL:includingPropertiesForKeys:options:error:){– contentsOfDirectoryAtURL:includingPropertiesForKeys:options:error:}
&amp;space(8)&amp;link_anchor(contentsOfDirectoryAtPath:error:){– contentsOfDirectoryAtPath:error:}
&amp;space(8)&amp;link_anchor(enumeratorAtPath:){– enumeratorAtPath:}
&amp;space(8)&amp;link_anchor(enumeratorAtURL:includingPropertiesForKeys:options:errorHandler:){– enumeratorAtURL:includingPropertiesForKeys:options:errorHandler:}
&amp;space(8)&amp;link_anchor(subpathsAtPath:){– subpathsAtPath:}
&amp;space(8)&amp;link_anchor(subpathsOfDirectoryAtPath:error:){– subpathsOfDirectoryAtPath:error:}
&amp;space(8)&amp;link_anchor(directoryContentsAtPath:){– directoryContentsAtPath:} &amp;color(#dd0000){Deprecated in Mac OS X v10.5}
***ファイルへのアクセス判断(Determining Access to Files)
&amp;space(8)&amp;link_anchor(fileExistsAtPath:){– fileExistsAtPath:}
&amp;space(8)&amp;link_anchor(fileExistsAtPath:isDirectory:){– fileExistsAtPath:isDirectory:}
&amp;space(8)&amp;link_anchor(isReadableFileAtPath:){– isReadableFileAtPath:}
&amp;space(8)&amp;link_anchor(isWritableFileAtPath:){– isWritableFileAtPath:}
&amp;space(8)&amp;link_anchor(isExecutableFileAtPath:){– isExecutableFileAtPath:}
&amp;space(8)&amp;link_anchor(isDeletableFileAtPath:){– isDeletableFileAtPath:}
***ファイル属性の取得と設定(Getting and Setting Attributes)
&amp;space(8)&amp;link_anchor(componentsToDisplayForPath:){– componentsToDisplayForPath:}
&amp;space(8)&amp;link_anchor(displayNameAtPath:){– displayNameAtPath:}
&amp;space(8)&amp;link_anchor(attributesOfItemAtPath:error:){– attributesOfItemAtPath:error:}
&amp;space(8)&amp;link_anchor(attributesOfFileSystemForPath:error:){– attributesOfFileSystemForPath:error:}
&amp;space(8)&amp;link_anchor(setAttributes:ofItemAtPath:error:){– setAttributes:ofItemAtPath:error:}
&amp;space(8)&amp;link_anchor(changeFileAttributes:atPath:){– changeFileAttributes:atPath:} &amp;color(#dd0000){Deprecated in Mac OS X v10.5}
&amp;space(8)&amp;link_anchor(fileAttributesAtPath:traverseLink:){– fileAttributesAtPath:traverseLink:} &amp;color(#dd0000){Deprecated in Mac OS X v10.5}
&amp;space(8)&amp;link_anchor(fileSystemAttributesAtPath:){– fileSystemAttributesAtPath:} &amp;color(#dd0000){Deprecated in Mac OS X v10.5}
***ファイルパス表現の取得(Getting Representations of File Paths)
&amp;space(8)&amp;link_anchor(fileSystemRepresentationWithPath:){– fileSystemRepresentationWithPath:}
&amp;space(8)&amp;link_anchor(stringWithFileSystemRepresentation:length:){– stringWithFileSystemRepresentation:length:}
***委譲先の管理(Managing the Delegate)
&amp;space(8)&amp;link_anchor(setDelegate:){– setDelegate:}
&amp;space(8)&amp;link_anchor(delegate){– delegate}
***現在のディレクトリの管理(Managing the Current Directory)
&amp;space(8)&amp;link_anchor(changeCurrentDirectoryPath:){– changeCurrentDirectoryPath:}
&amp;space(8)&amp;link_anchor(currentDirectoryPath){– currentDirectoryPath}
***システムディレクトリの位置づけ(Locating System Directories)
&amp;space(8)&amp;link_anchor(URLForDirectory:inDomain:appropriateForURL:create:error:){– URLForDirectory:inDomain:appropriateForURL:create:error:}
&amp;space(8)&amp;link_anchor(URLsForDirectory:inDomains:){– URLsForDirectory:inDomains:}
***安全なファイルの置き換え(Safely Replace a File)
&amp;space(8)&amp;link_anchor(replaceItemAtURL:withItemAtURL:backupItemName:options:resultingItemURL:error:){– replaceItemAtURL:withItemAtURL:backupItemName:options:resultingItemURL:error:}


**クラスメソッド
----
***&amp;anchor(option=nolink,defaultManager){defaultManager}
　ファイルシステムごとの標準のNSFileManagerオブジェクトを返します。
&amp;space(1)+ (NSFileManager *)defaultManger
&amp;bold(){戻り値}
- ファイルシステムの標準のNSFileManagerオブジェクトです。
&amp;bold(){解説}
- このメソッドは常に同じファイルマネージャインスタンスを返します。このメソッドによって取得したオブジェクトはスレッドセーフではありません。
- Mac OS X v10.5以降ではもうこのクラスをシングルトンとして使う必要はありません。他のクラスでするようにこのクラスのインスタンスを生成し、初期化することができます。[[NSFileManager alloc] init]という手順を使った場合、返されるNSFileManagerオブジェクトはスレッドセーフです。
&amp;bold(){使用可能な環境}
- Mac OS X v10.0以降
&amp;bold(){サンプルコード}
- [[Core Data HTML Store]]
- [[CoreRecipes]]
- [[GLUT]]
- [[ImageKitDemo]]
- [[Quartz Composer WWDC 2005 TextEdit]]
&amp;bold(){宣言ファイル}
- NSFileManager.h

**インスタンスメソッド
----
***&amp;anchor(option=nolink,attributesOfFileSystemForPath:error:){attributesOfFileSystemForPath:error:}
***&amp;anchor(option=nolink,attributesOfItemAtPath:error:){attributesOfItemAtPath:error:}
***&amp;anchor(option=nolink,changeCurrentDirectoryPath:){changeCurrentDirectoryPath:}
***&amp;anchor(option=nolink,componentsToDisplayForPath:){componentsToDisplayForPath:}
***&amp;anchor(option=nolink,contentsAtPath:){contentsAtPath:}
***&amp;anchor(option=nolink,contentsEqualAtPath:andPath:){contentsEqualAtPath:andPath:}
***&amp;anchor(option=nolink,contentsOfDirectoryAtPath:error:){contentsOfDirectoryAtPath:error:}
　与えられたディレクトリに含まれるディレクトリとファイル(シンボリックリンクを含む)を返します。
&amp;space(1)- ([[NSArray&gt;NSArray Class Reference]] *)contentsOfDirectoryAtPath:([[NSString&gt;NSString Class Reference]] *)&amp;italic(){path} error:([[NSError&gt;NSError Class Reference]] **)&amp;italic(){error}
&amp;bold(){パラメータ}
- &amp;italic(){path}
-- ディレクトリのパス。
- &amp;italic(){error}
-- エラーが起きた場合、そのエラーについて記述されたNSErrorオブジェクトが格納されます。エラー情報が必要ない場合はNULLを渡してください。
&amp;bold(){戻り値}
- &amp;italic(){path}に含まれるディレクトリやファイル(シンボリックリンクを含む)名のNSStringオブジェクトの配列です。ディレクトリが存在していてもコンテンツを含んでいない時には空の配列が返ります。&amp;italic(){path}で指定されたディレクトリが存在しないか、アクセス時に何かエラーが起きた時はnilが返ります。
&amp;bold(){解説}
- 検索は浅く行われます。したがって戻り値はサブディレクトリを含みません。戻り値の配列は現在のディレクトリ(&quot;.&quot;)、親ディレクトリ(&quot;..&quot;)、リソースフォーク(&quot;._&quot;)の文字列を含まず、シンボリックリンクを辿ることもしません。
&amp;bold(){使用可能な環境}
- Max OS X v10.5以降
&amp;bold(){関連項目}
- &amp;link_anchor(currentDirectoryPath){– currentDirectoryPath}
- &amp;link_anchor(fileExistsAtPath:isDirectory:){– fileExistsAtPath:isDirectory:}
- &amp;link_anchor(enumeratorAtPath:){– enumeratorAtPath:}
- &amp;link_anchor(subpathsAtPath:){– subpathsAtPath:}
&amp;bold(){サンプルコード}
- [[DesktopImage]]
- [[FunHouse]]
- [[ImageBrowserViewAppearance]]
- [[ImageKitDemo]]
- [[OutlineView]]
&amp;bold(){宣言ファイル}
- NSFileManager.h

***&amp;anchor(option=nolink,contentsOfDirectoryAtURL:includingPropertiesForKeys:options:error:){contentsOfDirectoryAtURL:includingPropertiesForKeys:options:error:}
***&amp;anchor(option=nolink,copyItemAtPath:toPath:error:){copyItemAtPath:toPath:error:}
***&amp;anchor(option=nolink,copyItemAtURL:toURL:error:){copyItemAtURL:toURL:error:}
***&amp;anchor(option=nolink,createDirectoryAtPath:withIntermediateDirectories:attributes:error:){createDirectoryAtPath:withIntermediateDirectories:attributes:error:}
***&amp;anchor(option=nolink,createFileAtPath:contents:attributes:){createFileAtPath:contents:attributes:}
***&amp;anchor(option=nolink,createSymbolicLinkAtPath:withDestinationPath:error:){createSymbolicLinkAtPath:withDestinationPath:error:}
***&amp;anchor(option=nolink,currentDirectoryPath){currentDirectoryPath}
***&amp;anchor(option=nolink,delegate){delegate}
***&amp;anchor(option=nolink,destinationOfSymbolicLinkAtPath:error){destinationOfSymbolicLinkAtPath:error}:
***&amp;anchor(option=nolink,displayNameAtPath:){displayNameAtPath:}
　パスで与えられたファイルまたはディレクトリをユーザに提示するためのローカライズされた書式にして返します。
&amp;space(1)- ([[NSString&gt;NSString Class Reference]] *)dispalyNameAtPath:([[NSString&gt;NSString Class Reference]] *)&amp;italic(){path}
&amp;bold(){パラメータ}
- &amp;italic(){path}
-- ファイルまたはディレクトリのパス。
&amp;bold(){戻り値}
- ファイルまたはディレクトリの名前
&amp;bold(){解説}
- 戻り値は必要に応じてローカライズされています。たとえばシステムの言語としてフランス語を選択している場合、以下のコードのログは &quot;Bibliothèque&quot; です。
|BGCOLOR(#eef):LEFT:NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);&amp;br()&amp;br()if ([paths count] &gt; 0) &amp;nowiki(){{}&amp;br()&amp;br()&amp;space(8)NSString *documentsDirectory = [paths objectAtIndex:0];&amp;br()&amp;br()&amp;space(8)NSFileManager *fileManager = [[NSFileManager alloc] init];&amp;br()&amp;br()&amp;space(8)NSString *displayNameAtPath = [fileManager displayNameAtPath:documentsDirectory];&amp;br()&amp;br()&amp;space(8)NSLog(@&quot;%@&quot;, displayNameAtPath);&amp;br()&amp;br()&amp;space(8)[fileManager release];&amp;br()&amp;br()&amp;nowiki(){}}|
&amp;bold(){使用可能な環境}
- Max OS X v10.1以降
&amp;bold(){関連項目}
- &amp;link_anchor(lastPathComponent){– lastPathComponent} ( NSString )
&amp;bold(){サンプルコード}
- [[AlbumToSlideshow]]
- [[AutomatorHandsOn]]
- [[ComplexBrowser]]
- [[Quartz Composer WWDC 2005 TextEdit]]
- [[SourceView]]
&amp;bold(){宣言ファイル}
- NSFileManager.h

***&amp;anchor(option=nolink,enumeratorAtPath:){enumeratorAtPath:}
***&amp;anchor(option=nolink,enumeratorAtURL:includingPropertiesForKeys:options:){enumeratorAtURL:includingPropertiesForKeys:options:}
***&amp;anchor(option=nolink,errorHandler:){errorHandler:}
***&amp;anchor(option=nolink,fileExistsAtPath:){fileExistsAtPath:}
***&amp;anchor(option=nolink,fileExistsAtPath:isDirectory:){fileExistsAtPath:isDirectory:}
***&amp;anchor(option=nolink,fileSystemRepresentationWithPath:){fileSystemRepresentationWithPath:}
***&amp;anchor(option=nolink,init){init}
　初期化された NSFilemanager のインスタンスを返します。
&amp;space(1)- init
&amp;bold(){戻り値}
- 初期化された NSFilemanager のインスタンスです。
&amp;bold(){解説}
- Mac OS X v 10.4 以前のバージョンでは init メッセージの送信は定義されていません。iOS と Mac OS X 10.5 以降のバージョンでレシーバを初期化します。
***&amp;anchor(option=nolink,isDeletableFileAtPath:){isDeletableFileAtPath:}
***&amp;anchor(option=nolink,isExecutableFileAtPath:){isExecutableFileAtPath:}
***&amp;anchor(option=nolink,isReadableFileAtPath:){isReadableFileAtPath:}
***&amp;anchor(option=nolink,isWritableFileAtPath:){isWritableFileAtPath:}
***&amp;anchor(option=nolink,linkItemAtPath:toPath:error:){linkItemAtPath:toPath:error:}
***&amp;anchor(option=nolink,linkItemAtURL:toURL:error:){linkItemAtURL:toURL:error:}
***&amp;anchor(option=nolink,mountedVolumeURLsIncludingResourceValuesForKeys:options:){mountedVolumeURLsIncludingResourceValuesForKeys:options:}
***&amp;anchor(option=nolink,moveItemAtPath:toPath:error:){moveItemAtPath:toPath:error:}
　与えられたパスによって特定されるディレクトリまたはファイルをもう一方のパスで識別される別のファイルシステムの位置に移動します。
&amp;space(1)- (BOOL)moveItemAtPath:([[NSString&gt;NSString Class Reference]] *)&amp;italic(){srcPath} toPath:([[NSString&gt;NSString Class Reference]] *)&amp;italic(){dstPath} error:([[NSError&gt;NSError Class Reference]] **)error
&amp;bold(){パラメータ}
- &amp;italic(){srcPath}
-- 移動元のディレクトリまたはファイルのパス。&amp;italic(){srcPath} は存在していなければなりません。
- &amp;italic(){dstPath}
-- &amp;italic(){srcPath} の移動先のディレクトリまたはファイルのパスです。移動先のディレクトリまたファイルが既に存在してはいけません。移動先のパスはディレクトリ名またはファイル名で終わっていなければなりません。ソース名が暗黙裏に採択されることはありません。
- &amp;italic(){error}
-- エラーが発生した場合、戻ったときに問題を記述した NSError オブジェクトが含まれます。エラー情報が必要でない場合は NULL を渡します。
&amp;bold(){戻り値}
- 移動のオペレーションが成功した場合は YES です。成功しない場合でもデリゲートのメッセージ &amp;link_anchor(fileManager:shouldProceedAfterError:movingItemAtPath:toPath:){fileManager:shouldProceedAfterError:movingItemAtPath:toPath:} が YES を返せば moveItemAtPath:toPath:error: も YES を返します。そうでない場合は NO です。
&amp;bold(){解説}
- ソースのパスと移動先のパスが同じデバイス上にない場合、NSFilenaMager は 移動先のパスにコピーを実行してからオリジナルを削除します。コピーが成功しなかった場合、このメソッドはエラーを返し、NSFileManager は不完全なコピーを削除します。オリジナルはそのまま残ります。
- NSFileManager は移動オペレーションを開始するとき &amp;link_anchor(fileManager:shouldMoveItemAtPath:toPath:){fileManager:shouldMoveItemAtPath:toPath:} をデリゲートに送ります。デリゲートが YES を返す場合、NSFilemanager はアイテムの移動を試みます。NO を返す場合、moveItemAtPath:toPath:error: はアイテムの移動をしません。
- NSFilemanager は工程でエラーに遭遇したとき &amp;link_anchor(fileManager:shouldProceedAfterError:movingItemAtPath:toPath:){fileManager:shouldProceedAfterError:movingItemAtPath:toPath:} をデリゲートに送ります。デリゲートが YES を返す場合、そのとき NSFileManamer はエラーが発生しなかったものとして続行します。NO を返す場合、moveItemAtPath:toPath:error: は終了し、エラーパラメータに戻ってエラーを渡します。

&amp;bold(){使用可能な環境}
- Max OS X v10.5以降
&amp;bold(){関連項目}
- &amp;link_anchor(moveItemAtURL:toURL:error:){- moveItemAtURL:toURL:error:}
- &amp;link_anchor(fileManager:shouldMoveItemAtPath:toPath:){- fileManager:shouldMoveItemAtPath:toPath:}
- &amp;link_anchor(copyItemAtPath:toPath:error:){- copyItemAtPath:toPath:error:}
- &amp;link_anchor(linkItemAtPath:toPath:error:){- linkItemAtPath:toPath:error:}
- &amp;link_anchor(removeItemAtPath:error:){- removeItemAtPath:error:}
&amp;bold(){サンプルコード}
- [[QTRecorder]]
&amp;bold(){宣言ファイル}
- NSFileManager.h

***&amp;anchor(option=nolink,moveItemAtURL:toURL:error:){moveItemAtURL:toURL:error:}
　与えられたURLによって特定されるディレクトリまたはファイルをもう一方のURLで識別される別のファイルシステムの位置に移動します。
&amp;space(1)- (BOOL)moveItemAtURL:([[NSURL&gt;NSURL Class Reference]] *)&amp;italic(){srcURL} toURL:([[NSURL&gt;NSURL Class Reference]] *)&amp;italic(){dstURL} error:([[NSError&gt;NSError Class Reference]] **)error
&amp;bold(){パラメータ}
- &amp;italic(){srcURL}
-- 移動元のディレクトリまたはファイルのURL。&amp;italic(){srcURL} は存在していなければなりません。
- &amp;italic(){dstURL}
-- &amp;italic(){srcURL} の移動先のディレクトリまたはファイルのURLです。移動先のディレクトリまたファイルが既に存在してはいけません。移動先のURLはディレクトリ名またはファイル名で終わっていなければなりません。ソース名が暗黙裏に採択されることはありません。
- &amp;italic(){error}
-- エラーが発生した場合、戻ったときに問題を記述した NSError オブジェクトが含まれます。エラー情報が必要でない場合は NULL を渡します。
&amp;bold(){戻り値}
- 移動のオペレーションが成功した場合は YES です。成功しない場合でもデリゲートのメッセージ &amp;link_anchor(fileManager:shouldProceedAfterError:movingItemAtURL:toURL:){fileManager:shouldProceedAfterError:movingItemAtURL:toURL:} が YES を返せば moveItemAtURL:toURL:error: も YES を返します。そうでない場合は NO です。
&amp;bold(){解説}
- ソースのパスと移動先のパスが同じデバイス上にない場合、NSFilenaMager は 移動先のパスにコピーを実行してからオリジナルを削除します。コピーが成功しなかった場合、このメソッドはエラーを返し、NSFileManager は不完全なコピーを削除します。オリジナルはそのまま残ります。
- NSFileManager は移動オペレーションを開始するとき &amp;link_anchor(fileManager:shouldMoveItemAtURL:toURL:){fileManager:shouldMoveItemAtURL:toURL:} をデリゲートに送ります。デリゲートが YES を返す場合、NSFilemanager はアイテムの移動を試みます。NO を返す場合、moveItemAtURL:toURL:error: はアイテムの移動をしません。
- NSFilemanager は工程でエラーに遭遇したとき &amp;link_anchor(fileManager:shouldProceedAfterError:movingItemAtURL:toURL:){fileManager:shouldProceedAfterError:movingItemAtURL:toURL:} をデリゲートに送ります。デリゲートが YES を返す場合、そのとき NSFileManamer はエラーが発生しなかったものとして続行します。NO を返す場合、moveItemAtURL:toURL:error: は終了し、エラーパラメータに戻ってエラーを渡します。

&amp;bold(){使用可能な環境}
- Max OS X v10.6 以降
&amp;bold(){関連項目}
- &amp;link_anchor(moveItemAtPath:toPath:error:){- moveItemAtPath:toPath:error:}
- &amp;link_anchor(fileManager:shouldMoveItemAtURL:toURL:){- fileManager:shouldMoveItemAtURL:toURL:}
- &amp;link_anchor(copyItemAtURL:toURL:error:){- copyItemAtURL:toURL:error:}
- &amp;link_anchor(linkItemAtURL:toURL:error:){- linkItemAtURL:toURL:error:}
- &amp;link_anchor(removeItemAtURL:error:){- removeItemAtURL:error:}
&amp;bold(){宣言ファイル}
- NSFileManager.h

***&amp;anchor(option=nolink,removeItemAtPath:error:){removeItemAtPath:error:}
***&amp;anchor(option=nolink,removeItemAtURL:error:){removeItemAtURL:error:}
***&amp;anchor(option=nolink,replaceItemAtURL:withItemAtURL:backupItemName:options:resultingItemURL:error:){replaceItemAtURL:withItemAtURL:backupItemName:options:resultingItemURL:error:}
***&amp;anchor(option=nolink,setAttributes:ofItemAtPath:error:){setAttributes:ofItemAtPath:error:}
***&amp;anchor(option=nolink,setDelegate:){setDelegate:}
***&amp;anchor(option=nolink,stringWithFileSystemRepresentation:length:){stringWithFileSystemRepresentation:length:}
***&amp;anchor(option=nolink,subpathsAtPath:){subpathsAtPath:}
***&amp;anchor(option=nolink,subpathsOfDirectoryAtPath:error:){subpathsOfDirectoryAtPath:error:}
　与えられたディレクトリに含まれるディレクトリとファイル(シンボリックリンクを含む)を返します。
&amp;space(1)- ([[NSArray&gt;NSArray Class Reference]] *)subpathsOfDirectoryAtPath:([[NSString&gt;NSString Class Reference]] *)&amp;italic(){path} error:([[NSError&gt;NSError Class Reference]] **)&amp;italic(){error}
&amp;bold(){パラメータ}
- &amp;italic(){path}
-- リストアップするディレクトリのパス。
- &amp;italic(){error}
-- エラーが起きた場合、そのエラーについて記述されたNSErrorオブジェクトが格納されます。エラー情報が必要ない場合はNULLを渡してください。
&amp;bold(){戻り値}
- &amp;italic(){path}で指定されたディレクトリとそのサブディレクトリに含まれるアイテムを再帰的に検索しそのファイルネームを表すNSStringオブジェクトの配列を返します。&amp;italic(){path}がシンボリックリンクであれば、subpathsOfDirectoryAtPath:error:メソッドはそのリンクを辿ります。[the device of the linked-to file]が取得できない場合はnilを返します。
&amp;bold(){解説}
- このディレクトリコンテンツのリストはかなり深くまで至り、ゆえに巨大なファイルシステムツリーではとても役立ちます。このメソッドは&quot;.&quot;と&quot;..&quot;をスキップします。
&amp;bold(){使用可能な環境}
- Max OS X v10.5以降
&amp;bold(){関連項目}
- &amp;link_anchor(subpathsAtPath:){– subpathsAtPath:}
- &amp;link_anchor(contentsOfDirectoryAtPath:error:){– contentsOfDirectoryAtPath:error:}
- &amp;link_anchor(enumeratorAtPath:){– enumeratorAtPath:}
&amp;bold(){宣言ファイル}
- NSFileManager.h

***&amp;anchor(option=nolink,URLForDirectory:inDomain:appropriateForURL:create:error:){URLForDirectory:inDomain:appropriateForURL:create:error:}
***&amp;anchor(option=nolink,URLsForDirectory:inDomains:){URLsForDirectory:inDomains:}

**委譲メソッド(Delegate Method)
----
***&amp;anchor(option=nolink,fileManager:shouldCopyItemAtPath:toPath:){fileManager:shouldCopyItemAtPath:toPath:}
　NSFileManager オブジェクトは与えられたパスへのコピーを実行する直前にこのメッセージを送信します。
&amp;space(1)- (BOOL)fileManager:([[NSFileManager&gt;NSFileManager Class Reference]] *)&amp;italic(){fileManager} shouldCopyItemAtPath:([[NSString&gt;NSString Class Reference]] *)&amp;italic(){srcPath} toPath:([[NSString&gt;NSString Class Reference]] *)&amp;italic(){dstPath}
&amp;bold(){パラメータ}
- &amp;italic(){fileManager}
-- このメッセージを送信した NSFileManager オブジェクトです。
- &amp;italic(){srcPath}
-- &amp;italic(){fileManager} がコピーを実行しようとしているコピー元のファイルまたはディレクトリのパスです。
- &amp;italic(){dstPath}
-- &amp;italic(){fileManager} がコピーを実行しようとしているコピー先のファイルまたはディレクトリのパスです。
&amp;bold(){戻り値}
- この操作が続行されるべきなら YES を返します。そうでないならば、NO を返します。
&amp;bold(){解説}
- このメソッドが NO を返すと NSFilemanager はアイテムをコピーしようとすることを停止します。スキップされたアイテムがディレクトリの場合、そのディレクトリが内包するものはコピーされません。同様にこれらの内包するものについてデリゲートに通知しません。
&amp;bold(){使用可能な環境}
- Max OS X v10.5 以降
&amp;bold(){関連項目}
- &amp;link_anchor(copyItemAtPath:toPath:error:){- copyItemAtPath:toPath:error:}
- &amp;link_anchor(fileManager:shouldProceedAfterError:copyingItemAtPath:toPath:){- fileManager:shouldProceedAfterError:copyingItemAtPath:toPath:}
- &amp;link_anchor(fileManager:shouldCopyItemAtURL:toURL:){- fileManager:shouldCopyItemAtURL:toURL:}
&amp;bold(){宣言ファイル}
- NSFileManager.h

***&amp;anchor(option=nolink,fileManager:shouldCopyItemAtURL:toURL:){fileManager:shouldCopyItemAtURL:toURL:}
***&amp;anchor(option=nolink,fileManager:shouldLinkItemAtPath:toPath:){fileManager:shouldLinkItemAtPath:toPath:}
***&amp;anchor(option=nolink,fileManager:shouldLinkItemAtURL:toURL:){fileManager:shouldLinkItemAtURL:toURL:}
***&amp;anchor(option=nolink,fileManager:shouldMoveItemAtPath:toPath:){fileManager:shouldMoveItemAtPath:toPath:}
　NSFileManager オブジェクトは与えられたパスへの移動を実行する直前にこのメッセージを送信します。
&amp;space(1)- (BOOL)fileManager:([[NSFileManager&gt;NSFileManager Class Reference]] *)&amp;italic(){fileManager} shouldMoveItemAtPath:([[NSString&gt;NSString Class Reference]] *)&amp;italic(){srcPath} toPath:([[NSString&gt;NSString Class Reference]] *)&amp;italic(){dstPath}
&amp;bold(){パラメータ}
- &amp;italic(){fileManager}
-- このメッセージを送信した NSFileManager オブジェクトです。
- &amp;italic(){srcPath}
-- &amp;italic(){fileManager} が移動を実行しようとしている移動元のファイルまたはディレクトリのパスです。
- &amp;italic(){dstPath}
-- &amp;italic(){fileManager} が移動を実行しようとしている移動先のファイルまたはディレクトリのパスです。
&amp;bold(){戻り値}
- この操作が続行されるべきなら YES を返します。そうでないならば、NO を返します。
&amp;bold(){解説}
- このメソッドが NO を返すと NSFilemanager はアイテムの移動を停止します。移動のオペレーションでは、ソースのパスと移動先のパスが同じデバイス上にない場合、NSFilenaMager は 移動先のパスにコピーを実行してからオリジナルを削除します。コピーが成功しなかった場合、NSFileManager はエラーを返し、不完全なコピーを削除します。オリジナルはそのまま残ります。

&amp;bold(){使用可能な環境}
- Max OS X v10.5 以降
&amp;bold(){関連項目}
- &amp;link_anchor(moveItemAtPath:toPath:error:){- moveItemAtPath:toPath:error:}
- &amp;link_anchor(fileManager:shouldProceedAfterError:movingItemAtPath:toPath:){- fileManager:shouldProceedAfterError:movingItemAtPath:toPath:}
&amp;bold(){宣言ファイル}
- NSFileManager.h

***&amp;anchor(option=nolink,fileManager:shouldMoveItemAtURL:toURL:){fileManager:shouldMoveItemAtURL:toURL:}
　NSFileManager オブジェクトは与えられた URL への移動を実行する直前にこのメッセージを送信します。
&amp;space(1)- (BOOL)fileManager:([[NSFileManager&gt;NSFileManager Class Reference]] *)&amp;italic(){fileManager} shouldMoveItemAtURL:([[NSURL&gt;NSURL Class Reference]] *)&amp;italic(){srcURL} toURL:([[NSURL&gt;NSURL Class Reference]] *)&amp;italic(){dstURL}
&amp;bold(){パラメータ}
- &amp;italic(){fileManager}
-- このメッセージを送信した NSFileManager オブジェクトです。
- &amp;italic(){srcURL}
-- &amp;italic(){fileManager} が移動を実行しようとしている移動元のファイルまたはディレクトリの URL です。
- &amp;italic(){dstPath}
-- &amp;italic(){fileManager} が移動を実行しようとしている移動先のファイルまたはディレクトリの URL です。
&amp;bold(){戻り値}
- この操作が続行されるべきなら YES を返します。そうでないならば、NO を返します。
&amp;bold(){解説}
- このメソッドが NO を返すと NSFilemanager はアイテムの移動を停止します。移動のオペレーションでは、ソースの URL と移動先の URL が同じデバイス上にない場合、NSFilenaMager は 移動先の URL にコピーを実行してからオリジナルを削除します。コピーが成功しなかった場合、NSFileManager はエラーを返し、不完全なコピーを削除します。オリジナルはそのまま残ります。

&amp;bold(){使用可能な環境}
- Max OS X v10.6 以降
&amp;bold(){関連項目}
- &amp;link_anchor(moveItemAtURL:toURL:error:){- moveItemAtURL:toURL:error:}
- &amp;link_anchor(fileManager:shouldProceedAfterError:movingItemAtURL:toURL:){- fileManager:shouldProceedAfterError:movingItemAtURL:toURL:}
&amp;bold(){宣言ファイル}
- NSFileManager.h

***&amp;anchor(option=nolink,fileManager:shouldProceedAfterError:copyingItemAtPath:toPath:){fileManager:shouldProceedAfterError:copyingItemAtPath:toPath:}
***&amp;anchor(option=nolink,fileManager:shouldProceedAfterError:copyingItemAtURL:toURL:){fileManager:shouldProceedAfterError:copyingItemAtURL:toURL:}
***&amp;anchor(option=nolink,fileManager:shouldProceedAfterError:linkingItemAtPath:toPath:){fileManager:shouldProceedAfterError:linkingItemAtPath:toPath:}
***&amp;anchor(option=nolink,fileManager:shouldProceedAfterError:linkingItemAtURL:toURL:){fileManager:shouldProceedAfterError:linkingItemAtURL:toURL:}
***&amp;anchor(option=nolink,fileManager:shouldProceedAfterError:movingItemAtPath:toPath:){fileManager:shouldProceedAfterError:movingItemAtPath:toPath:}
　NSFileManager オブジェクトは与えられたパスへの移動を実行する間にエラーが発生した場合、このメッセージを送信します。
&amp;space(1)- (BOOL)fileManager:([[NSFileManager&gt;NSFileManager Class Reference]] *)&amp;italic(){fileManager} shouldProceedAfterError:([[NSError&gt;NSError Class Reference]] *)&amp;italic(){error} movingItemAtPath:([[NSString&gt;NSString Class Reference]] *)&amp;italic(){srcPath} toPath:([[NSString&gt;NSString Class Reference]] *)&amp;italic(){dstPath}
&amp;bold(){パラメータ}
- &amp;italic(){fileManager}
-- このメッセージを送信した NSFileManager オブジェクトです。
- &amp;italic(){error}
-- 移動を実行する間に発生したエラーです。
- &amp;italic(){srcPath}
-- &amp;italic(){fileManager} が移動を実行しようとしている移動元のファイルまたはディレクトリのパスです。
- &amp;italic(){dstPath}
-- &amp;italic(){fileManager} が移動を実行しようとしている移動先のファイルまたはディレクトリのパスです。
&amp;bold(){戻り値}
- この操作が続行されるべきなら YES を返します。そうでないならば、NO を返します。
&amp;bold(){解説}
- このメソッドが YES を返す場合、NSFileManager のインスタンスはエラーが発生しなかったものとして動作を継続します。NO を返す場合、アイテムの移動を停止し &amp;link_anchor(moveItemAtPath:toPath:error:){moveItemAtPath:toPath:error:} は NO を返します。そして、このメソッドのエラーの引数にエラーを提供します。
&amp;bold(){使用可能な環境}
- Max OS X v10.5 以降
&amp;bold(){関連項目}
- &amp;link_anchor(moveItemAtPath:toPath:error:){- moveItemAtPath:toPath:error:}
- &amp;link_anchor(fileManager:shouldMoveItemAtPath:toPath:){- fileManager:shouldMoveItemAtPath:toPath:}
&amp;bold(){宣言ファイル}
- NSFileManager.h

***&amp;anchor(option=nolink,fileManager:shouldProceedAfterError:movingItemAtURL:toURL:){fileManager:shouldProceedAfterError:movingItemAtURL:toURL:}
　NSFileManager オブジェクトは与えられた URL への移動を実行する間にエラーが発生した場合、このメッセージを送信します。
&amp;space(1)- (BOOL)fileManager:([[NSFileManager&gt;NSFileManager Class Reference]] *)&amp;italic(){fileManager} shouldProceedAfterError:([[NSError&gt;NSError Class Reference]] *)&amp;italic(){error} movingItemAtURL:([[NSURL&gt;NSURL Class Reference]] *)&amp;italic(){srcURL} toURL:([[NSURL&gt;NSURL Class Reference]] *)&amp;italic(){dstURL}
&amp;bold(){パラメータ}
- &amp;italic(){fileManager}
-- このメッセージを送信した NSFileManager オブジェクトです。
- &amp;italic(){error}
-- 移動を実行する間に発生したエラーです。
- &amp;italic(){srcURL}
-- &amp;italic(){fileManager} が移動を実行しようとしている移動元のファイルまたはディレクトリの URL です。
- &amp;italic(){dstURL}
-- &amp;italic(){fileManager} が移動を実行しようとしている移動先のファイルまたはディレクトリの URL です。
&amp;bold(){戻り値}
- この操作が続行されるべきなら YES を返します。そうでないならば、NO を返します。
&amp;bold(){解説}
- このメソッドが YES を返す場合、NSFileManager のインスタンスはエラーが発生しなかったものとして動作を継続します。NO を返す場合、アイテムの移動を停止し &amp;link_anchor(moveItemAtURL:toURL:error:){moveItemAtURL:toURL:error:} は NO を返します。そして、このメソッドのエラーの引数にエラーを提供します。
&amp;bold(){使用可能な環境}
- Max OS X v10.6 以降
&amp;bold(){関連項目}
- &amp;link_anchor(moveItemAtURL:toURL:error:){- moveItemAtURL:toURL:error:}
- &amp;link_anchor(fileManager:shouldMoveItemAtURL:toURL:){- fileManager:shouldMoveItemAtURL:toURL:}
&amp;bold(){宣言ファイル}
- NSFileManager.h

***&amp;anchor(option=nolink,fileManager:shouldProceedAfterError:removingItemAtPath:){fileManager:shouldProceedAfterError:removingItemAtPath:}
***&amp;anchor(option=nolink,fileManager:shouldProceedAfterError:removingItemAtURL:){fileManager:shouldProceedAfterError:removingItemAtURL:}
***&amp;anchor(option=nolink,fileManager:shouldRemoveItemAtPath:){fileManager:shouldRemoveItemAtPath:}
***&amp;anchor(option=nolink,fileManager:shouldRemoveItemAt){fileManager:shouldRemoveItemAt}

**定数(Constants)
----
***Mounted Volume Enumeration Options
***Directory Enumeration Options
***NSFileManagerItemReplacementOptions
***ファイル属性キー(File Attribute Keys)
　これらのキーは
&amp;link_anchor(setAttributes:ofItemAtPath:error:){- setAttributes:ofItemAtPath:error:}、
&amp;link_anchor(attributesOfItemAtPath:error:){- attributesOfItemAtPath:error:}、
&amp;link_anchor(createDirectoryAtPath:withIntermediateDirectories:attributes:error:){- createDirectoryAtPath:withIntermediateDirectories:attributes:error:}、
&amp;link_anchor(createFileAtPath:contents:attributes:){- createFileAtPath:contents:attributes:}
のメソッドを使って得たNSDictionaryオブジェクトに格納されているファイル属性値を取得する為のものです。
NSString * const NSFileType;
NSString * const NSFileSize;
NSString * const NSFileModificationDate;
NSString * const NSFileReferenceCount;
NSString * const NSFileDeviceIdentifier;
NSString * const NSFileOwnerAccountName;
NSString * const NSFileGroupOwnerAccountName;
NSString * const NSFilePosixPermissions;
NSString * const NSFileSystemNumber;
NSString * const NSFileSystemFileNumber;
NSString * const NSFileExtensionHidden;
NSString * const NSFileHFSCreatorCode;
NSString * const NSFileHFSTypeCode;
NSString * const NSFileImmutable;
NSString * const NSFileAppendOnly;
NSString * const NSFileCreationDate;
NSString * const NSFileOwnerAccountID;
NSString * const NSFileGroupOwnerAccountID;
NSString * const NSFileBusy;
&amp;bold(){定数}
-NSFileAppendOnly
--　ファイルが読み取り専用かどうかを示すファイル属性辞書のキーです。
--　対応する値は論理値を格納したNSNumberオブジェクトです。
--　Mac OS X v10.2以降で使用可能です。
--　NSFileManager.hで宣言されています。
-NSFileBusy
--　ファイルが使用中かどうかを示すファイル属性辞書のキーです。
--　対応する値は論理値を格納したNSNumberオブジェクトです。
--　Mac OS X v10.4以降で使用可能です。
--　NSFileManager.hで宣言されています。
-NSFileCreationDate
--　ファイルの作成日を示すファイル属性辞書のキーです。
--　対応する値はNSDateオブジェクトです。
--　Mac OS X v10.2以降で使用可能です。
--　NSFileManager.hで宣言されています。
-NSFileOwnerAccountName
--　ファイル所有者の名前を示すファイル属性辞書のキーです。
--　対応する値はNSStringオブジェクトです。
--　Mac OS X v10.0以降で使用可能です。
--　NSFileManager.hで宣言されています。
-NSFileGroupOwnerAccountName
--　ファイル所有者グループの名前を示すファイル属性辞書のキーです。
--　対応する値はNSStringオブジェクトです。
--　Mac OS X v10.0以降で使用可能です。
--　NSFileManager.hで宣言されています。
-NSFileDeviceIdentifier
--　ファイルが存在するデバイスのIDを示すファイル属性辞書のキーです。
--　対応する値はunsignd long型を格納したNSNumberオブジェクトです。
--　Mac OS X v10.0以降で使用可能です。
--　NSFileManager.hで宣言されています。
-NSFileExtensionHidden
--　ファイルの拡張子が隠れているかどうかを示すファイル属性辞書のキーです。
--　対応する値は論理値を格納したNSNumberオブジェクトです。
--　Mac OS X v10.1以降で使用可能です。
--　NSFileManager.hで宣言されています。
-NSFileGroupOwnerAccountID
--　ファイルのグループIDを示すファイル属性辞書のキーです。
--　対応する値はunsigned long型を格納したNSNumberオブジェクトです。
--　Mac OS X v10.2以降で使用可能です。
--　NSFileManager.hで宣言されています。
-NSFileHFSCreatorCode
--　ファイルのHFSクリエータコードを示すファイル属性辞書のキーです。
--　対応する値はunsigned long型を格納したNSNumberオブジェクトです。適切な値については[[HFS File Types]]を参照してください。
--　Mac OS X v10.1以降で使用可能です。
--　NSFileManager.hで宣言されています。
-NSFileHFSTypeCode
--　ファイルのHFSタイプコードを示すファイル属性辞書のキーです。
--　対応する値はunsigned long型を格納したNSNumberオブジェクトです。適切な値については[[HFS File Types]]を参照してください。
--　Mac OS X v10.1以降で使用可能です。
--　NSFileManager.hで宣言されています。
-NSFileImmutable
--　ファイルが変更可能かどうかを示すファイル属性辞書のキーです。
--　対応する値は論理値を格納したNSNumberオブジェクトです。
--　Mac OS X v10.2以降で使用可能です。
--　NSFileManager.hで宣言されています
-NSFileModificationDate
--　ファイルの最終変更日を示すファイル属性辞書のキーです。
--　対応する値はNSDateオブジェクトです。
--　Mac OS X v10.0以降で使用可能です。
--　NSFileManager.hで宣言されています。
-NSFileOwnerAccountID
--　ファイルの所有者のアカウントIDを示すファイル属性辞書のキーです。
--　対応する値はunsignd long型を格納したNSNumberオブジェクトです。
--　Mac OS X v10.2以降で使用可能です。
--　NSFileManager.hで宣言されています。
-NSFilePosixPermissions
--　ファイルの[Posix permissions]を示すファイル属性辞書のキーです。
//Posixアクセス権限?
--　対応する値はunsignd long型を格納したNSNumberオブジェクトです。
--　Mac OS X v10.0以降で使用可能です。
--　NSFileManager.hで宣言されています。
-NSFileReferenceCount
--　ファイルのリファレンスカウントを示すファイル属性辞書のキーです。
--　対応する値はunsignd long型を格納したNSNumberオブジェクトです。
--　この数字はファイルへのハードリンクの数です。
--　Mac OS X v10.0以降で使用可能です。
--　NSFileManager.hで宣言されています。
-NSFileSize
--　ファイルサイズをバイト単位で示すファイル属性辞書のキーです。
--　対応する値はunsignd long long型を格納したNSNumberオブジェクトです。
|BGCOLOR(#ccc):&amp;bold(){重要:}ファイルがリソースフォークを持っている場合、戻り値にはその分のサイズは含まれません。|
--　Mac OS X v10.0以降で使用可能です。
--　NSFileManager.hで宣言されています。
-NSFileSystemFileNumber
--　ファイルのファイルシステムナンバーを示すファイル属性辞書のキーです。
--　対応する値はunsignd long型を格納したNSNumberオブジェクトです。[The value corresponds to the value of st_ino, as returned by stat(2).]
//stat(2)によって返されるので、この値はst_inoの値と一致しています。?
--　Mac OS X v10.0以降で使用可能です。
--　NSFileManager.hで宣言されています。
-NSFileType
--　ファイルタイプを示すファイル属性辞書のキーです。
--　対応する値はNSStringオブジェクトです(適切な&amp;link_anchor(){「NSFileType Attribute Values」を参照してください)。
--　Mac OS X v10.0以降で使用可能です。
--　NSFileManager.hで宣言されています。
&amp;bold(){解説}
- NSFileDeviceIdentifierはリモートデバイスのIDにアクセスするのに使われます。
&amp;bold(){宣言ファイル}
- NSFileManager.h

***NSFileType Attribute Values
***File-System Attribute Keys
***Resource Fork Support


----     </description>
    <dc:date>2011-04-13T01:23:39+09:00</dc:date>
  </item>
    <item rdf:about="http://www11.atwiki.jp/cocoareferencejp/pages/118.html">
    <title>Blocks and Variables</title>
    <link>http://www11.atwiki.jp/cocoareferencejp/pages/118.html</link>
    <description>
      //0.下はいじらない
Tags:&amp;tags()

//1.以下に続けてADCでの分類を書き込みリンクする。「ガイド小見出し(日本語名)」、まで書く
&amp;link_toppage(トップ) &gt; [[ガイド&gt;Guides]] &gt; ブロックプログラミング概論

//前後のページへのリンクをはる。ページ最下部にも同じものがあるので忘れずにリンクする
[[前のページ&gt;]]　　[[次のページ&gt;]]

*ブロックと変数 [[翻訳元&gt;http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/Blocks/Articles/bxVariables.html#//apple_ref/doc/uid/TP40007502-CH6-SW1]]
　この記事ではブロックと変数間の内部的な働きをメモリ管理も含めて説明します。

//3.翻訳元の最終更新日を書く
このページの最終更新：&amp;date()
ADCの最終更新：2009-10-19

//目次は自動生成
目次
#contents(fromhere=true)

//4.以下、用語は頻繁に出てくる単語の翻訳ガイドラインを参照しながら翻訳する。
//5.ある程度書き終わったらタグ（未完または完成、カテゴリ名×3）をつけて下線を引く(広告との境)。これで終了。それではGood Luck!

**変数の型(Types of Variable)
----
　ブロックオブジェクトのコードの集合では、変数は五つの異なる形で扱われます。
　三つの標準的な変数の型は関数内と全く同様に参照することができます。
- グローバル変数。静的変数を含む。
- グローバル関数(厳密には変数ではない)。
- スコープに囲まれたローカル変数とパラメータ。
　またブロックは他に二つの変数の型をサポートしています。
+ [At function level are __block variables.]これらはブロック(とスコープ)内で変更可能で、参照されているどんなブロックがヒープにコピーされても保護されます。
+ constの取り込み
　最後に、メソッドの実装中ではブロックはObjective-Cインスタンス変数を参照できます。「オブジェクトとブロック変数(Object and Block Variables)」を参照してください。
　ブロック中で使用される変数には以下の規則が適用されます。
+ グローバル変数とレキシカルスコープ中に存在する静的変数はアクセス可能です。
+ ブロックに渡されたパラメータ(ちょうど関数の引数のように)はアクセス可能です。
+ レキシカルスコープに囲まれた局所的なスタック(静的でない)変数はconst変数として切り取られます。&amp;br()この変数はプログラム中でブロック表現にさしかかった時に取得されます。ネストされたブロックでは、この値は最も近いスコープから切り取られます。
+ レキシカルスコープ中で__blockストレージ型修飾子で宣言された変数は参照で提供されるので変更可能になります。&amp;br()そのレキシカルスコープ中での変更は同じスコープで宣言された他のブロックのも含め全て反映されます。これらは「__block ストレージ型(The __block Storage Type)」で詳説しています。
+ ブロック中のレキシカルスコープ中で宣言されたローカル変数は関数中のローカル変数と全く同じように働きます。&amp;br()ブロックの呼び出しではそれぞれこの変数の新しいコピーが作られます。これらの変数はブロック中のブロックでconstや参照変数として代わる代わる使うことができます。
　以下の例では静的でないローカル変数の用法を説明しています。
|BGCOLOR(#eff):int x = 123;&amp;br() &amp;br()void (^printXAndY)(int) = ^(int y) {&amp;br() &amp;br()    printf(&quot;%d %d\n&quot;, x, y);&amp;br()};&amp;br() &amp;br()printXAndY(456); // prints: 123 456|
　注意してほしいのは、ブロック中でxで新しい値を参照しようとするとエラーになることです。
|BGCOLOR(#eff):int x = 123;&amp;br() &amp;br()void (^printXAndY)(int) = ^(int y) {&amp;br() &amp;br()    x = x + y; // error&amp;br()    printf(&quot;%d %d\n&quot;, x, y);&amp;br()};|
　変数をブロック中で変更できるようにするには、__blockストレージ型修飾子を使用します。「__block ストレージ型(The __block Storage Type)」をご覧ください。
**__block ストレージ型(The __block Storage Type)
----
　__block型修飾子を適用することによって読み込んだ変数を変更可能であること、つまり読み書き可能であることを明示できます。__blockストレージ型はローカル変数を修飾するregister、auto、staticストレージ型と似ていますが、同時に使うことはできません。
　__block変数はその変数のレキシカルスコープと、その中で生成または宣言された全てのブロックとその複製で共有されるストレージに確保されます。したがって、スタックフレームが破棄されても(例えば後で実行する為にどこかに待機させることで)、その中で宣言されたブロックの複製が生存していれば、ストレージは決して破棄されません。一つのレキシカルスコープ中の複数のブロックは共有する変数を同時に使うことがあります。
　最適化の為に、ブロックストレージはブロック自体と同じようにまずスタック外に確保されます。もしブロックがBlock_copyを使って(またはObjective-Cでブロックにcopyを送って)コピーされれば、変数はヒープにコピーされます。つまり、&amp;bold(){__block変数のアドレスは時間とともに変わることがあります。}
　__block変数にはもう二つの制限があり、可変長の配列がなること、C99可変長配列を含む構造体がなることはできません。
　以下の例では__block変数の用法を説明しています。
|__block int x = 123; // xはブロックストレージ中に確保される&amp;br() &amp;br()void (^printXAndY)(int) = ^(int y) {&amp;br() &amp;br()    x = x + y;&amp;br()    printf(&quot;%d %d\n&quot;, x, y);&amp;br()};&amp;br()printXAndY(456); // prints: 579 456&amp;br()// 今xは579|
　以下の例ではいくつかの異なる型の変数とブロック間の相互作用を示しています。
|extern NSInteger CounterGlobal;&amp;br()static NSInteger CounterStatic;&amp;br() &amp;br();{&amp;br()    NSInteger localCounter = 42;&amp;br()    __block char localCharacter;&amp;br() &amp;br()    void (^aBlock)(void) = ^(void) {&amp;br()        ++CounterGlobal;&amp;br()        ++CounterStatic;&amp;br()        CounterGlobal = localCounter; // localCounter fixed at block creation&amp;br()        localCharacter = &#039;a&#039;; // sets localCharacter in enclosing scope&amp;br()    };&amp;br() &amp;br()    ++localCounter; // unseen by the block&amp;br()    localCharacter = &#039;b&#039;;&amp;br() &amp;br()    aBlock(); // execute the block&amp;br()    // localCharacter now &#039;a&#039;&amp;br()}|
**オブジェクトとブロック変数
----
　ブロックはObjective-CとC++のオブジェクトや別ブロックへのサポートを変数という形で提供しています。

*Objecive-Cオブジェクト
　リファレンスカウンタ環境下では、ブロック中でObjective-Cオブジェクトを参照するときには通常そのオブジェクトを保持します。これはオブジェクトのインスタンス変数を単純に参照する場合でも当てはまります。ですが、__blockストレージ型修飾子のついたオブジェクト変数は保持されません。
|&amp;bold(){注：}ガベージコレクタ環境下では、__weak修飾子や__block修飾子を変数に適用した場合、そのブロックではその変数が確保されていることを保証できません。|
　ブロックをメソッドの実装内で使用した場合、オブジェクトインスタンス変数のメモリ管理の規則はさらに巧妙になります。
- インスタンス変数に参照でアクセスしている場合には、selfが保持されます。
- インスタンス変数に値でアクセスしている場合には、その変数が保持されます。
　以下の例ではこの異なる二つの状況を説明しています。
|dispatch_async(queue, ^{&amp;br()&amp;br()    // instanceVariableは参照なのでselfが保持されます&amp;br()&amp;br()    doSomethingWithObject(instanceVariable);&amp;br()&amp;br()});&amp;br()&amp;br() &amp;br()&amp;br() &amp;br()&amp;br()id localVariable = instanceVariable;&amp;br()&amp;br()dispatch_async(queue, ^{&amp;br()&amp;br()    // localVariableは値なので、localVariableが保持されます(selfではありません)&amp;br()&amp;br()&amp;br()    doSomethingWithObject(localVariable);&amp;br()&amp;br()});|

#right(){[[前のページ&gt;Getting Started with Blocks]]　　[[次のページ&gt;]]}
----    </description>
    <dc:date>2010-05-12T18:15:35+09:00</dc:date>
  </item>
    <item rdf:about="http://www11.atwiki.jp/cocoareferencejp/pages/119.html">
    <title>Movie Overlay</title>
    <link>http://www11.atwiki.jp/cocoareferencejp/pages/119.html</link>
    <description>
      
&lt;p&gt;ぐりぐり&lt;/p&gt;
    </description>
    <dc:date>2010-05-05T16:55:38+09:00</dc:date>
  </item>
    <item rdf:about="http://www11.atwiki.jp/cocoareferencejp/pages/117.html">
    <title>Declaring and Creating Blocks</title>
    <link>http://www11.atwiki.jp/cocoareferencejp/pages/117.html</link>
    <description>
      //0.下はいじらない
Tags:&amp;tags()

//1.以下に続けてADCでの分類を書き込みリンクする。「ガイド小見出し(日本語名)」、まで書く
&amp;link_toppage(トップ) &gt; [[ガイド&gt;Guides]] &gt; ブロックプログラミング概論

//前後のページへのリンクをはる。ページ最下部にも同じものがあるので忘れずにリンクする
[[前のページ&gt;]]　　[[次のページ&gt;]]

*ブロックの宣言と作成 [[翻訳元&gt;http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/Blocks/Articles/bxDeclaringCreating.html#//apple_ref/doc/uid/TP40007502-CH4-SW1]]
 以下のセクションでは実践的な例を使ってブロックを始める手助けをします。

//3.翻訳元の最終更新日を書く
このページの最終更新：&amp;date()
ADCの最終更新：2009-10-19

//目次は自動生成
目次
#contents(fromhere=true)

//4.以下、用語は頻繁に出てくる単語の翻訳ガイドラインを参照しながら翻訳する。
//5.ある程度書き終わったらタグ（未完または完成、カテゴリ名×3）をつけて下線を引く(広告との境)。これで終了。それではGood Luck!

//中見出しは下線を引く
**ブロック参照の宣言
----
　ブロック変数はブロックへの参照を持ちます。ブロック変数は関数ポインタを宣言するのとよく似た構文を使います。違っているのは*の代わりに^を使うことだけです。ブロック型は他のCの型系を完全に組み込んで動作します。以下は全て有効なブロック変数の宣言です。
|BGCOLOR(#eff):void (^blockReturningVoidWithVoidArgument)(void);&amp;br()int (^blockReturningIntWithIntAndCharArguments)(int, char);&amp;br()void (^arrayOfTenBlocksReturningVoidWithIntArgument[10])(int);|
　ブロックは可変長引数(...)をサポートしています。引数をとらないブロックは引数リストにvoidを指定しなければなりません。
　ブロックはコンパイラにブロックの機能を有効にする為の全てのメタデータの集合や渡される引数、戻り値の指定を渡すことで完全に安全な型になるように設計されています。ブロックの参照は任意のポインタ型にキャストできますし、その逆も同様です。ただし、間接参照演算子(*)経由でブロックの参照を得ることはできません。なぜなら、コンパイル時にブロックのサイズが計算できなくなってしまうからです。
　また、ブロックの型を作成することができます。一般的にはそうすることが複数の箇所でシグニチャとしてブロックを使用する時に実用的だと考えられています。
|BGCOLOR(#eff):typedef float (^MyBlockType)(float, float);&amp;br() &amp;br()MyBlockType myFirstBlock = // ... ;&amp;br()MyBlockType mySecondBlock = // ... ;|
**ブロックの生成(Creating a Block)
----
　ブロックのリテラル表現の始まりを明示するには^演算子を、終わりを明示するには;演算子を使用します。以下の例では簡単なブロックを宣言し、あらかじめ宣言しておいた変数(oneFrom)で参照しています。
|BGCOLOR(#eff):int (^oneFrom)(int);&amp;br() &amp;br()oneFrom = ^(int anInt) {&amp;br()&amp;space(4)return anInt - 1;&amp;br()};|
　ブロック表現の戻り値を明確に宣言しなければ、ブロックの内容から自動的に推定されます。戻り値の型が推定される場合で引数リストがvoidであれば、戻り値と同様(void)引数を省略することができます。複数return文がある場合、その型は正確に一致していなければなりません(必要ならキャストを使います)。
**大域ブロック(Global Blocks)
----
　ファイルレベルでブロックを大域的なリテラルとして使用できます。
|BGCOLOR(#eff):#import &lt;stdio.h&gt;&amp;br() &amp;br()int GlobalInt = 0;&amp;br()int (^getGlobalInt)(void) = ^{ return GlobalInt; };|

#right(){[[前のページ&gt;Getting Started with Blocks]]　　[[次のページ&gt;]]}
----    </description>
    <dc:date>2010-03-04T23:47:16+09:00</dc:date>
  </item>
    <item rdf:about="http://www11.atwiki.jp/cocoareferencejp/pages/116.html">
    <title>Conceptual Overview</title>
    <link>http://www11.atwiki.jp/cocoareferencejp/pages/116.html</link>
    <description>
      //0.下はいじらない
Tags:&amp;tags()

//1.以下に続けてADCでの分類を書き込みリンクする。「ガイド小見出し(日本語名)」、まで書く
&amp;link_toppage(トップ) &gt; [[ガイド&gt;Guides]] &gt; ブロックプログラミング概論

//前後のページへのリンクをはる。ページ最下部にも同じものがあるので忘れずにリンクする
[[前のページ&gt;]]　　[[次のページ&gt;]]

*大まかなコンセプト [[翻訳元&gt;http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/Blocks/Articles/bxOverview.html#//apple_ref/doc/uid/TP40007502-CH3-SW1]]
 以下のセクションでは実践的な例を使ってブロックを始める手助けをします。

//3.翻訳元の最終更新日を書く
このページの最終更新：&amp;date()
ADCの最終更新：2009-10-19

//目次は自動生成
目次
#contents(fromhere=true)

//4.以下、用語は頻繁に出てくる単語の翻訳ガイドラインを参照しながら翻訳する。
//5.ある程度書き終わったらタグ（未完または完成、カテゴリ名×3）をつけて下線を引く(広告との境)。これで終了。それではGood Luck!

//中見出しは下線を引く
**ブロックの機能(Block Functionality)
----
　ブロックは次のようなコードのよくある組み込みのコレクションです。
- ちょうど関数のように型付けされた引数リストを持つ。
- 暗黙に、または明確に宣言された戻り値を持つ。
- 定義されたレキシカルスコープから状態を獲得できる。
- レキシカルスコープの状態を任意で変更できる。
- 同じレキシカルスコープで定義されたほかのブロックと変更の可能性を共有できる。
- レキシカルスコープ(スタックフレーム)で定義された状態をそのレキシカルスコープ(スタックフレーム)が破棄された後でも続けて共有、変更できる。
　ブロックは複製することも、その実行を譲るためにほかのスレッド(または自身のスレッドのランループ)に渡してしまうことさえできます。コンパイラとランタイムはブロックが参照しているすべての変数がそのブロックのすべての複製の寿命分保護されるように手配しています。ブロックは純粋なCやC++で使えますが、ブロックは常にObjective-Cオブジェクトとしても利用できます。

**用法(Usage)
----
　通常、ブロックは小さく自己完結したコード片を表します。[As such, they’re particularly useful as a means of encapsulating units of work that may be executed concurrently, or over items in a collection.]
//そのような意味では、ブロックは特に同時に実行される可能性がある動作の単位、またはコレクション中の複数のアイテムをカプセル化する方法として有用です。？
　ブロックの変数との相互作用のおかげで、局所的な状態にアクセスする必要がある状況でも、ブロックは有用なものとなっています。したがって、ブロックはコールバックの代替手段としても有用です。コールバックを使うために、処理を実行するのに必要な前後関係をもった情報を含むデータ構造体を要求しなくても、単にローカル変数に直接アクセスするだけでよいのです。

#right(){[[前のページ&gt;Getting Started with Blocks]]　　[[次のページ&gt;]]}
----    </description>
    <dc:date>2010-03-02T17:40:48+09:00</dc:date>
  </item>
    <item rdf:about="http://www11.atwiki.jp/cocoareferencejp/pages/115.html">
    <title>Getting Started with Blocks</title>
    <link>http://www11.atwiki.jp/cocoareferencejp/pages/115.html</link>
    <description>
      //0.下はいじらない
Tags:&amp;tags()

//1.以下に続けてADCでの分類を書き込みリンクする。「ガイド小見出し(日本語名)」、まで書く
&amp;link_toppage(トップ) &gt; [[ガイド&gt;Guides]] &gt; ブロックプログラミング概論

//前後のページへのリンクをはる。ページ最下部にも同じものがあるので忘れずにリンクする
[[前のページ&gt;]]　　[[次のページ&gt;]]

*ブロックを始めよう [[翻訳元&gt;http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/Blocks/Articles/bxGettingStarted.html#//apple_ref/doc/uid/TP40007502-CH7-SW1]]
 以下のセクションでは実践的な例を使ってブロックを始める手助けをします。

//3.翻訳元の最終更新日を書く
このページの最終更新：&amp;date()
ADCの最終更新：2009-10-19

//目次は自動生成
目次
#contents(fromhere=true)

//4.以下、用語は頻繁に出てくる単語の翻訳ガイドラインを参照しながら翻訳する。
//5.ある程度書き終わったらタグ（未完または完成、カテゴリ名×3）をつけて下線を引く(広告との境)。これで終了。それではGood Luck!

//中見出しは下線を引く
**ブロックの宣言と使用(Declaring and Using a Block)
----
　ブロック変数の宣言やブロックリテラルの始まり(Cでは一般に、; が式の終わりを意味します)を明示するには^演算子を使用します。これは以下の例で示さています。
|BGCOLOR(#eef):int multiplier = 7;&amp;br()int (^myBlock)(int) = ^(int num) {&amp;br()    return num * multiplier;&amp;br()};|
　この例は下の図で説明しています。
　[[図(外部リンク、英語)&gt;http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/Blocks/Art/blocks.jpg]]
　ブロックは定義されたのと同じスコープの変数を利用できる言うことに注意してください。
　ブロックを変数として宣言すれば、そのブロックは関数と全く同じに使うことができます。
|BGCOLOR(#eef):int multiplier = 7;&amp;br()int (^myBlock)(int) = ^(int num) {&amp;br()    return num * multiplier;&amp;br()};&amp;br() &amp;br()printf(&quot;%d&quot;, myBlock(3));&amp;br()// prints &quot;21&quot;|

**ブロックを直接使用する(Using a Block Directly)
----
　多くの場合、ブロック変数を宣言する必要はありません。代わりに、引数として要求された所に、ブロックリテラルを単純に組み込んで書くことができます。以下の例ではqsort_b関数を使用しています。qsort_bは標準のqsort_r関数とよく似ていますが、最後の引数にブロックをとります。
|BGCOLOR(#eef):char *myCharacters[3] = { &quot;TomJohn&quot;, &quot;George&quot;, &quot;Charles Condomine&quot; };&amp;br() &amp;br()qsort_b(myCharacters, 3, sizeof(char *), ^(const void *l, const void *r) {&amp;br()    char *left = *(char **)l;&amp;br()    char *right = *(char **)r;&amp;br()    return strncmp(left, right, 1);&amp;br()});&amp;br() &amp;br()&amp;br()// myCharacters is now { &quot;Charles Condomine&quot;, &quot;George&quot;, TomJohn&quot; }|

**Cocoaでのブロック(Blocks with Cocoa)
----
　[[Cocoaフレームワーク]]のいくつかのメソッドはブロックを引数としてとります。通常、オブジェクトのコレクションへ炉処理や、処理が終わった後のコールバックとして使用されます。以下の例では、NSArrayの[[sortedArrayUsingComparator:]]メソッドでのブロックの使い方を示しています。このメソッドは一つの引数としてブロックをとります。この場合はブロックは[[NSComparator:]]として定義されます。
|BGCOLOR(#eef):NSArray *stringsArray = [NSArray arrayWithObjects:&amp;br()&amp;space(24)@&quot;string 1&quot;,&amp;br()&amp;space(24)@&quot;String 21&quot;,&amp;br()                                 @&quot;string 12&quot;,&amp;br()&amp;space(24)@&quot;String 11&quot;,&amp;br()&amp;space(24)@&quot;String 02&quot;, nil];&amp;br() &amp;br()static NSStringCompareOptions comparisonOptions = NSCaseInsensitiveSearch &amp;nowiki(){|} NSNumericSearch &amp;nowiki(){|}&amp;br()        NSWidthInsensitiveSearch &amp;nowiki(){|} NSForcedOrderingSearch;&amp;br()NSLocale *currentLocale = [NSLocale currentLocale];&amp;br() &amp;br()NSComparator finderSort = ^(id string1, id string2) {&amp;br() &amp;br()    NSRange string1Range = NSMakeRange(0, [string1 length]);&amp;br()    return [string1 compare:string2 options:comparisonOptions range:string1Range locale:currentLocale];&amp;br()};&amp;br() &amp;br()NSLog(@&quot;finderSort: %@&quot;, [stringsArray sortedArrayUsingComparator:finderSort]);&amp;br() &amp;br()/*&amp;br()Output:&amp;br()finderSort: (&amp;br()    &quot;string 1&quot;,&amp;br()    &quot;String 02&quot;,&amp;br()    &quot;String 11&quot;,&amp;br()    &quot;string 12&quot;,&amp;br()    &quot;String 21&quot;&amp;br()&amp;br())|

[[前のページ&gt;Blocks Programming Topic]]　　[[次のページ&gt;]]
----    </description>
    <dc:date>2010-02-28T13:50:09+09:00</dc:date>
  </item>
    <item rdf:about="http://www11.atwiki.jp/cocoareferencejp/pages/114.html">
    <title>Blocks Programming Topics</title>
    <link>http://www11.atwiki.jp/cocoareferencejp/pages/114.html</link>
    <description>
      //0.下はいじらない
Tags:&amp;tags()

//1.以下に続けてADCでの分類を書き込みリンクする。「ガイド小見出し(日本語名)」、まで書く
&amp;link_toppage(トップ) &gt; [[ガイド&gt;Guides]] &gt; 言語 &gt; ブロックプログラミング概論

//前後のページへのリンクをはる。ページ最下部にも同じものがあるので忘れずにリンクする

//2.ガイド小見出しページ名(日本語名)を見出し1で書く。wiki内のリンクで用いられるタイトルになる。翻訳元にもリンクする。
*ブロックプログラミング概論 [[翻訳元&gt;http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/Blocks/Articles/00_Introduction.html]]

//3.翻訳元の最終更新日を書く
このページの最終更新：&amp;date()
ADCの最終更新：2009-10-19

//目次は自動生成
目次
#contents(fromhere=true)

//4.以下、用語は頻繁に出てくる単語の翻訳ガイドラインを参照しながら翻訳する。
//5.ある程度書き終わったらタグ（未完または完成、カテゴリ名×3）をつけて下線を引く(広告との境)。これで終了。それではGood Luck!

//中見出しは下線を引く
*イントロダクション(Introduction)
----
　ブロックオブジェクトはランタイム特有のCレベルの構文です。これらは通常のC関数に似ていますが、実行可能なコードに加えて自動(スタック)メモリまたは手動(ヒープ)メモリに束縛された変数も収容しています。ブロックを使えば、関数表現をAPIに渡したり、自由にストアしたり、マルチスレッド上で使ったりすることができます。
　ブロックはMac OS X v10.6のデベロッパーツールとして同梱されているGCCと[[Clang&gt;http://clang.llvm.org/]]で使うことができます。ブロックランタイムはオープンソースであり、[[LLVM’s compiler-rt subproject repository&gt;http://llvm.org/svn/llvm-project/compiler-rt/trunk/]]で見ることができます。またブロックは[[N1370: Apple’s Extensions to C&gt;http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1370.pdf]](ここにはガーベジコレクションも含まれています)というスタンダードCワーキンググループでも提供されています。Objective-CもC++もC由来の言語なので、ブロックは３つの全ての言語(Objective-C++も同様)で動作するように設計されています。(構文にはこの目標が表れています。)
　ブロックとは何か、C、C++、Objective-Cでどのように使うのかを学び、プログラムをより効率的、保守的にする為にこのドキュメントを読んでください。

**このドキュメントの構成(Organization of This Document)
----
このドキュメントは以下のチャプターから構成されています。
- [[「ブロックを始めよう」]]では簡潔で実践的なブロックの導入を提供しています。
- [[「大まかなコンセプト」]]ではブロックの概念の導入を提供しています。
- [[「ブロックの宣言と生成」]]ではブロック変数の宣言の仕方とブロックの実装の仕方を説明しています。
- [[「ブロックと変数」]]ではブロックと変数間の関係を説明し、__blockストレージをタイプ修飾子と定義します。
- [[「ブロックを使う」]]では様々なブロックの用法を例示します。

#right(){[[次のページ&gt;]]}
----    </description>
    <dc:date>2010-02-28T13:06:30+09:00</dc:date>
  </item>
    <item rdf:about="http://www11.atwiki.jp/cocoareferencejp/pages/88.html">
    <title>NSValue Class Reference</title>
    <link>http://www11.atwiki.jp/cocoareferencejp/pages/88.html</link>
    <description>
      //0.下はいじらない
Tags:&amp;tags()

//1.以下に続けてADCでの分類を書き込みリンクする。「NSHogeのクラスリファレンス」、まで書く
&amp;link_toppage(トップ) &gt; [[リファレンス]] &gt; データ管理：データ型とコレクション &gt; NSValue クラスリファレンス

//2.リファレンス日本語名を見出し1で書く。wiki内のリンクで用いられるタイトルになる。翻訳元にもリンクする。
*NSValue クラスリファレンス [[翻訳元&gt;http://developer.apple.com/mac/library/documentation/Cocoa/Reference/Foundation/Classes/NSValue_Class/Reference/Reference.html#//apple_ref/occ/cl/NSValue]]

//3.翻訳元の最終更新日を書く
このページの最終更新：&amp;date()
ADCの最終更新：2007-10-31

//4.以下、用語は頻繁に出てくる単語の翻訳ガイドラインを参照しながら翻訳する。
//5.ある程度書き終わったらタグ（未完または完成、カテゴリ名×3）をつけて下線を引く(広告との境)。これで終了。それではGood Luck!
//本文開始↓

|BGCOLOR(#eef):継承するクラス|BGCOLOR(#eef):[[NSObject&gt;NSObject Class Reference]]|
|準拠しているプロトコル|[[NSCoding&gt;NSCoding Protocol Reference]]&amp;br()[[NSCopying Protocol Reference]]&amp;br()[[NSObject (NSObject)&gt;NSObject Protocol Reference]]|
|BGCOLOR(#eef):フレームワーク|BGCOLOR(#eef):/System/Library/Frameworks/[[Foundation.framework&gt;Foundation Framework]]|
|使用可能な環境|Mac OS X v10.0 以降|
|BGCOLOR(#eef):コンパニオンガイド|BGCOLOR(#eef):[[Number and Value Programming Topics for Cocoa]]|
|宣言ファイル|NSGeometry.h&amp;br()NSRange.h&amp;br()NSValue.h|
|BGCOLOR(#eef):サンプルコード|BGCOLOR(#eef):[[LightTable]]&amp;br()[[QTAudioContextInsert]]&amp;br()[[QTAudioExtractionPanel]]&amp;br()[[Quartz Composer WWDC 2005 TextEdit]]&amp;br()[[Sketch+Accessibility]]|

**概観(Overview)
----
　NSValueクラスのオブジェクトはCやObjective-Cの単独なデータの単純なコンテナです。このオブジェクトはint、float、charだけでなく、ポインタや構造体、オブジェクトのid型などのようなどんなスカラー型も持つことができます。このクラスはこのようなデータ型をNSArrayやNSSetのような要素がオブジェクトであることを要求するコレクションに入れられるようにする為に使います。NSValueオブジェクトは常に変更不能です。

**採用しているプロトコル(Adopted Protocols)
----
[[NSCoding&gt;NSCoding Protocol Reference]]
&amp;space(8)&amp;link_anchor(page=NSCoding Protocol Reference,encodeWithCoder:){- encodeWithCoder:}
&amp;space(8)&amp;link_anchor(page=NSCoding Protocol Reference,initWithCoder:){- initWithCoder:}
[[NSCopying&gt;NSCopying Protocol Reference]]
&amp;space(8)&amp;link_anchor(page=NSCopying Protocol Reference,copyWithZone:){- copyWithZone:}

**このクラスでできること(Tasks)
----
**NSValueオブジェクトの作成(Creating an NSValue)
&amp;space(8)&amp;link_anchor(initWithBytes:objCType:){– initWithBytes:objCType:}
&amp;space(8)&amp;link_anchor(valueWithBytes:objCType:){+ valueWithBytes:objCType:}
&amp;space(8)&amp;link_anchor(value:withObjCType:){+ value:withObjCType:}
&amp;space(8)&amp;link_anchor(valueWithNonretainedObject:){+ valueWithNonretainedObject:}
&amp;space(8)&amp;link_anchor(valueWithPointer:){+ valueWithPointer:}
&amp;space(8)&amp;link_anchor(valueWithPoint:){+ valueWithPoint:}
&amp;space(8)&amp;link_anchor(valueWithRange:){+ valueWithRange:}
&amp;space(8)&amp;link_anchor(valueWithRect:){+ valueWithRect:}
&amp;space(8)&amp;link_anchor(valueWithSize:){+ valueWithSize:}
***データへのアクセス(Accessing Data)
&amp;space(8)&amp;link_anchor(getValue:){– getValue:}
&amp;space(8)&amp;link_anchor(nonretainedObjectValue){– nonretainedObjectValue}
&amp;space(8)&amp;link_anchor(objCType){– objCType}
&amp;space(8)&amp;link_anchor(pointValue){– pointValue}
&amp;space(8)&amp;link_anchor(pointerValue){– pointerValue}
&amp;space(8)&amp;link_anchor(rangeValue){– rangeValue}
&amp;space(8)&amp;link_anchor(rectValue){– rectValue}
&amp;space(8)&amp;link_anchor(sizeValue){– sizeValue}
***オブジェクトの比較(Comparing Objects)
&amp;space(8)&amp;link_anchor(isEqualToValue:){– isEqualToValue:}

**クラスメソッド
----
***&amp;anchor(option=nolink,value:withObjCType:){value:withObjCType:}
***&amp;anchor(option=nolink,valueWithBytes:objCType:){valueWithBytes:objCType:}
***&amp;anchor(option=nolink,valueWithNonretainedObject:){valueWithNonretainedObject:}
***&amp;anchor(option=nolink,valueWithPoint:){valueWithPoint:}
***&amp;anchor(option=nolink,valueWithPointer:){valueWithPointer:}
***&amp;anchor(option=nolink,valueWithRange:){valueWithRange:}
***&amp;anchor(option=nolink,valueWithRect:){valueWithRect:}
***&amp;anchor(option=nolink,valueWithSize:){valueWithSize:}

**インスタンスメソッド
----
***&amp;anchor(option=nolink,getValue:){getValue:}
***&amp;anchor(option=nolink,initWithBytes:objCType:){initWithBytes:objCType:}
***&amp;anchor(option=nolink,isEqualToValue:){isEqualToValue:}
***&amp;anchor(option=nolink,nonretainedObjectValue){nonretainedObjectValue}
***&amp;anchor(option=nolink,objCType){objCType}
***&amp;anchor(option=nolink,pointValue){pointValue}
***&amp;anchor(option=nolink,pointerValue){pointerValue}
***&amp;anchor(option=nolink,rangeValue){rangeValue}
***&amp;anchor(option=nolink,rectValue){rectValue}
***&amp;anchor(option=nolink,sizeValue){sizeValue}


----    </description>
    <dc:date>2010-02-25T23:26:23+09:00</dc:date>
  </item>
    <item rdf:about="http://www11.atwiki.jp/cocoareferencejp/pages/113.html">
    <title>NSBlockOperation Class Reference</title>
    <link>http://www11.atwiki.jp/cocoareferencejp/pages/113.html</link>
    <description>
      //0.下はいじらない
Tags:&amp;tags()

//1.以下に続けてADCでの分類を書き込みリンクする。「NSHogeのクラスリファレンス」、まで書く
&amp;link_toppage(トップ) &gt; [[リファレンス]] &gt; データ管理：イベント制御 &gt; NSBlockOperation クラスリファレンス

//2.リファレンス日本語名を見出し1で書く。wiki内のリンクで用いられるタイトルになる。翻訳元にもリンクする。
*NSBlockOperation クラスリファレンス [[翻訳元&gt;http://developer.apple.com/mac/library/documentation/Cocoa/Reference/NSBlockOperation_class/Reference/Reference.html]]

//3.翻訳元の最終更新日を書く
このページの最終更新：&amp;date()
ADCの最終更新：2009-02-23

//4.以下、用語は頻繁に出てくる単語の翻訳ガイドラインを参照しながら翻訳する。
//5.ある程度書き終わったらタグ（未完または完成、カテゴリ名×3）をつけて下線を引く(広告との境)。これで終了。それではGood Luck!
//本文開始↓

|BGCOLOR(#eef):継承するクラス|BGCOLOR(#eef):[[NSOperation&gt;NSOperation Class Reference]] : [[NSObject&gt;NSObject Class Reference]]|
|TOP:準拠しているプロトコル|[[NSObject (NSObject)&gt;NSObject Protocol Reference]]|
|BGCOLOR(#eef):フレームワーク|BGCOLOR(#eef):/System/Library/Frameworks/[[Foundation.framework&gt;Foundation Framework]]|
|使用可能な環境|Mac OS X v10.6以降|
|TOP:BGCOLOR(#eef):宣言ファイル|BGCOLOR(#eef):NSOperation.h|
|TOP:コンパニオンガイド|[[Threading Programming Guide]]|

**概観(Overview)
----
　NSBlockOperationクラスは一つ以上のブロックの同時実行を管理する、[[NSOperation]]の具体サブクラスです。それぞれの処理で独立したオブジェクトを生成する必要がなく、すぐに数個のブロックを実行したいときにこのオブジェクトを使うことができます。二つ以上のブロックを実行している時は、処理自体は全てのブロックの実行が終わって初めて終了したと見なされます。
　ブロック処理に加えられたブロックは標準の優先度を持って適切なワークキューへ割り当てられます。ブロック自体にはその実行状況についてどんな仮定も含めるべきではありません。
　ブロックの詳細については、[[Blocks Programming Topics]]を参照してください。

**このクラスでできること(Tasks)
----
***処理中のブロックの管理(Managing the Blocks in the Operation)
&amp;space(8)&amp;link_anchor(blockOperationWithBlock:){+ blockOperationWithBlock:}
&amp;space(8)&amp;link_anchor(addExecutionBlock:){– addExecutionBlock:}
&amp;space(8)&amp;link_anchor(executionBlocks){– executionBlocks}

**クラスメソッド
----
***&amp;anchor(option=nolink,blockOperationWithBlock:){blockOperationWithBlock:}
　NSBlockOperationオブジェクトを生成し、指定されたブロックを加えて返します。

&amp;space(1)+ (id)blockOperationWithBlock:(void (^)(void))&amp;italic(){block}

&amp;bold(){パラメータ}
- &amp;italic(){block}
-- 新しいブロック処理のリストに加えるブロックです。このブロックは引数や戻り値に何も持たないようにしてください。
&amp;bold(){戻り値}
- 新しいブロック処理オブジェクトです。
&amp;bold(){使用可能な条件}
- Mac OS X v10.6以降
&amp;bold(){宣言ファイル}
- NSOperation.h

**インスタンスメソッド
----
***&amp;anchor(option=nolink,addExecutionBlock:){addExecutionBlock:}
　指定されたブロックを受信先の実行されるブロックのリストに加えます。

&amp;space(1)- (void)addExecutionBlock:(void (^)(void))&amp;italic(){block}

&amp;bold(){パラメータ}
- &amp;italic(){block}
-- 受信先のリストに加えるブロックです。このブロックは引数や戻り値に何も持たないようにしてください。
&amp;bold(){解説}
- 指定されたブロックは実行状況について何の仮定も持つべきではありません。
- 受信先が実行中の時か、既に実行が終了している時にこのメソッドを呼び出すとNSInvalidArgumentExceptionが発生します。
&amp;bold(){使用可能な条件}
- Mac OS X v10.6以降
&amp;bold(){宣言ファイル}
- NSOperation.h

***&amp;anchor(option=nolink,executionBlocks){executionBlocks}
　受信先に関連図蹴られたブロックを収容した配列を返します。

&amp;space(1)- ([[NSArray&gt;NSArray Class Reference]] *)executionBlocks

&amp;bold(){戻り値}
- ブロックの配列です。この配列中のブロックはもともとはaddExecutionBlock:メソッドを使って加えられたブロックの複製です。
&amp;bold(){使用可能な条件}
- Mac OS X v10.6以降
&amp;bold(){宣言ファイル}
- NSOperation.h

----    </description>
    <dc:date>2010-02-25T23:10:05+09:00</dc:date>
  </item>
    <item rdf:about="http://www11.atwiki.jp/cocoareferencejp/pages/112.html">
    <title>NSDictionary Class Reference</title>
    <link>http://www11.atwiki.jp/cocoareferencejp/pages/112.html</link>
    <description>
      //0.下はいじらない
Tags:&amp;tags()

//1.以下に続けてADCでの分類を書き込みリンクする。「NSHogeのクラスリファレンス」、まで書く
&amp;link_toppage(トップ) &gt; [[リファレンス]] &gt; データ管理：データ型とコレクション &gt; NSDictionary クラスリファレンス

//2.リファレンス日本語名を見出し1で書く。wiki内のリンクで用いられるタイトルになる。翻訳元にもリンクする。
*NSDictionary クラスリファレンス [[翻訳元&gt;http://developer.apple.com/mac/library/documentation/Cocoa/Reference/Foundation/Classes/NSDictionary_Class/Reference/Reference.html]]

//3.翻訳元の最終更新日を書く
このページの最終更新：&amp;date()
ADCの最終更新：2009-08-28

//4.以下、用語は頻繁に出てくる単語の翻訳ガイドラインを参照しながら翻訳する。
//5.ある程度書き終わったらタグ（未完または完成、カテゴリ名×3）をつけて下線を引く(広告との境)。これで終了。それではGood Luck!
//本文開始↓

|BGCOLOR(#eef):継承するクラス|BGCOLOR(#eef):[[NSObject&gt;NSObject Class Reference]]|
|TOP:準拠しているプロトコル|[[NSCoding&gt;NSCoding Protocol Reference]]&amp;br()[[NSCopying&gt;NSCopying Protocol Reference]]&amp;br()[[NSMutableCopying&gt;NSMutableCopying Protocol Reference]]&amp;br()[[NSFastEnumeration&gt;NSFastEnumeration Protocol Refernece]]&amp;br()[[NSObject (NSObject)&gt;NSObject Protocol Reference]]|
|BGCOLOR(#eef):フレームワーク|BGCOLOR(#eef):/System/Library/Frameworks/[[Foundation.framework&gt;Foundation Franework]]|
|使用可能な環境|Mac OS X v10.0以降|
|TOP:BGCOLOR(#eef):宣言ファイル|BGCOLOR(#eef):NSDictionary.h&amp;br()NSFileManager.h&amp;br()NSKeyValueCoding.h|
|TOP:コンパニオンガイド|[[Collections Programming Topics for Cocoa]]&amp;br()[[Property List Programming Guide]]|
|TOP:BGCOLOR(#eef):サンプルコード|BGCOLOR(#eef):[[From A View to A Movie]]&amp;br()[[From A View to A Picture]]&amp;br()[[People]]&amp;br()[[QTCoreVideo301]]&amp;br()[[Quartz Composer WWDC 2005 TextEdit]]|

**概観(Overview)
----
　NSDictionaryクラスはオブジェクトをキーと値の対で管理する変更不能なプログラマティックインターフェースを宣言しています。このクラス、また必要によりサブクラスのNSMutableDictionaruクラスを使うことによって、任意のキーに関連づけられたデータを効率的に取得することができます。(ここでは便宜的に、&amp;bold(){辞書}という単語を実際のクラスに関係なくこれらのサブクラスのうちの一つのクラスのインスタンスをさす言葉として使います。)
　辞書中のキーと値のペアはエントリと呼ばれます。それぞれのエントリはキーを表す一つ目のオブジェクトと、そのキーに対応する値である二つ目のオブジェクトから成り立ちます。辞書では、キーは一意的なものです。つまり、一つの辞書中に、等しい(&amp;link_anchor(){isEqual:}メソッドによって決定される)二つのキーは存在しません。通常、どんな(NSCopyingプロトコルに準拠している——以下を参照)オブジェクトでもキーになり得ます。しかし、キー値コーディングを使用する時はキーは文字列でなければならない([[Key-Value Coding Fundaentals]]を参照してください)ことに注意してください。nilはキーや値になりえません。辞書中で空の値を表現したい時は、[[NSNull&gt;NSNull Class Reference]]オブジェクトを使用してください。
　NSDictionaryのインスタンスは変更不能な辞書です。そのインスタンスのエントリは生成時に決定し、それ以後は変更できません。[[NSMutableDictionary]]のインスタンスは変更可能な辞書です。このインスタンスではいつでもエントリを追加したり削除したりでき、メモリも必要に応じて自動的に確保されます。辞書クラスはNSCopyingとNSMutableCopyingプロトコルに準拠し、辞書間での型変換を容易にしています。
　NSDictionaryとNSMutableDictionaryはクラスクラスタの一部です。つまり、このインターフェースから生成したオブジェクトは正確にはこれら二つのクラスのインスタンスではありません。もっと適切に言えば、これらのインスタンスはこれらの非公開なサブクラスのインスタンスです。辞書のクラスは非公開ですが、そのインターフェースは公開されています。なぜなら、インターフェースは抽象スーパークラスであるNSDictionaryとNSMutableDictionaryで宣言されているからです。
　内部的には、辞書はストレージの構成と与えられたキーに対応する値に素早くアクセスする為にハッシュテーブルを使っています。しかし、このクラス群で定義されているメソッドはハッシュテーブルやハッシュ関数、ハッシュされたキーの複雑な働きを隠蔽しています。以下で定義されているメソッドではキーを直接用い、ハッシュされた形では用いません。
　辞書にエントリを追加するメソッドは、(全ての辞書の)初期化の過程や(変更可能な辞書の)変更の過程であるかにかかわらず引数のキーをコピーし(キーはNSCopyingプロトコルに準拠しなければなりません)、その複製を辞書に加えます。それぞれに対応する値には辞書の使用中に解放されないことを保証する為に&amp;link_anchor(){retain}メッセージが送られます。
***列挙(Enumeration)
　辞書のコンテンツは&amp;link_anchor(){keyEnumerator}や&amp;link_anchor(){objectEnumerator}によって返されるNSEnumeratorを使ってそれぞれキー、値を列挙することができます。Mac OS X v10.5以降上では、NSDictionaryは[[NSFastEnumeration]]プロトコルをサポートしていますので、for...in構文を使って辞書中のキーを列挙することができます。以下の例で説明します。
|BGCOLOR(#eef):NSArray *keys = [NSArray arrayWithObjects:@&quot;key1&quot;, @&quot;key2&quot;, @&quot;key3&quot;, nil];&amp;br()NSArray *objects = [NSArray arrayWithObjects:@&quot;value1&quot;, @&quot;value2&quot;, @&quot;value3&quot;, nil];&amp;br()NSDictionary *dictionary = [NSDictionary dictionaryWithObjects:objects forKeys:keys];&amp;br() &amp;br()for (id key in dictionary) {&amp;br()    NSLog(@&quot;key: %@, value: %@&quot;, key, [dictionary objectForKey:key]);&amp;br()}|
　Mac OS X v10.6以降では、NSDictionaryはブロックオブジェクトを使用した列挙をサポートしています。
***プリミィティブメソッド(Primitive Methods)
　NSDictionaryの3つのプリミィティブメソッドである、&amp;link_anchor(){count}、&amp;link_anchor(){objectForKey:}、&amp;link_anchor(){keyEnumerator}はこのインターフェース中の他のメソッドの基礎を提供しています。&amp;link_anchor(){count}メソッドは辞書中のエントリの数を返します。&amp;link_anchor(){objectForKey:}は与えられたキーに関連づけられた値を返します。&amp;link_anchor(){keyEnumerator}は辞書中のキーを順番に参照する為のオブジェクトを返します。ここで宣言されているその他のメソッドはこれらのメソッドを一回、またはそれ以上呼び出して動作しています。プリミティブメソッド以外のメソッドは、一度に複数のエントリにアクセスする便利な手段を提供します。
***記述と永続性(Desctiptions and Persistance)
　プロパティリスト形式で文字列やファイルに書き出すには、それぞれdescription...や&amp;link_anchor(){writeToFile:atomically:}メソッドが使用できます。これらをカスタムデータオブジェクトのストレージの永続化に使用するのは一般的には推奨されません。代替手段としては[[Archives and Serializations Programming Guide for Cocoa]]を参照してください。
***Toll-Freeブリッジ(Toll-Free Bridging)
　NSDictionaryは対応するCore Foundationの[[CFDictionary Reference]]と「toll-freeブリッジ」です。つまり、関数やメソッド中のCore Foundation型はブリッジしているFoundationオブジェクトと相互に交換可能だということです。したがって、メソッド中のNSDictionary *パラメータにCFDictionaryRefを渡すことも、CFDictionaryRefパラメータにNSDicationaryインスタンスを渡すこともできます(コンパイル時の警告を押さえるにはその型にキャストします)。このブリッジはNSDictionaryの具体サブクラスにも適用されます。toll-freeブリッジについての詳細はInterchangeable Data Typesを参照してください。

**採用しているプロトコル(Adopted Protocols)
----
[[NSCoding&gt;NSCoding Protocol Reference]]
&amp;space(8)&amp;link_anchor(page=NSCoding Protocol Reference,encodeWithCoder:){– encodeWithCoder:}
&amp;space(8)&amp;link_anchor(page=NSCoding Protocol Reference,initWithCoder:){– initWithCoder:}
[[NSCopying&gt;NSCopying Protocol Reference]]
&amp;space(8)&amp;link_anchor(page=NSCopying Protocol Reference,copyWithZone:){– copyWithZone:}
[[NSMutableCopying&gt;NSMutableCopying Protocol Reference]]
&amp;space(8)&amp;link_anchor(page=NSMutableCopying Protocol Reference,mutableCopyWithZone:){– mutableCopyWithZone:}
[[NSFastEnumeration&gt;NSFastEnumeration Protocol Reference]]
&amp;space(8)&amp;link_anchor(page=NSFastEnumeration Protocol Reference,countByEnumeratingWithState:objects:count:){– countByEnumeratingWithState:objects:count:}

**このクラスでできること(Tasks)
----
***辞書の生成(Creating a Dictionary)
&amp;space(8)&amp;link_anchor(dictionary){+ dictionary}
&amp;space(8)&amp;link_anchor(dictionaryWithContentsOfFile:){+ dictionaryWithContentsOfFile:}
&amp;space(8)&amp;link_anchor(dictionaryWithContentsOfURL:){+ dictionaryWithContentsOfURL:}
&amp;space(8)&amp;link_anchor(dictionaryWithDictionary:){+ dictionaryWithDictionary:}
&amp;space(8)&amp;link_anchor(dictionaryWithObject:forKey:){+ dictionaryWithObject:forKey:}
&amp;space(8)&amp;link_anchor(dictionaryWithObjects:forKeys:){+ dictionaryWithObjects:forKeys:}
&amp;space(8)&amp;link_anchor(dictionaryWithObjects:forKeys:count:){+ dictionaryWithObjects:forKeys:count:}
&amp;space(8)&amp;link_anchor(dictionaryWithObjectsAndKeys:){+ dictionaryWithObjectsAndKeys:}
***NSDictionaryインスタンスの初期化(Initializing an NSDictionary Instance)
&amp;space(8)&amp;link_anchor(initWithContentsOfFile:){– initWithContentsOfFile:}
&amp;space(8)&amp;link_anchor(initWithContentsOfURL:){– initWithContentsOfURL:}
&amp;space(8)&amp;link_anchor(initWithDictionary:){– initWithDictionary:}
&amp;space(8)&amp;link_anchor(initWithDictionary:copyItems:){– initWithDictionary:copyItems:}
&amp;space(8)&amp;link_anchor(initWithObjects:forKeys:){– initWithObjects:forKeys:}
&amp;space(8)&amp;link_anchor(initWithObjects:forKeys:count:){– initWithObjects:forKeys:count:}
&amp;space(8)&amp;link_anchor(initWithObjectsAndKeys:){– initWithObjectsAndKeys:}
***エントリの数え上げ(Counting Entries)
&amp;space(8)&amp;link_anchor(count){– count}
***辞書の比較(Comparing Dictionaries)
&amp;space(8)&amp;link_anchor(isEqualToDictionary:){– isEqualToDictionary:}
***キーや値へのアクセス(Accessing Keys and Values)
&amp;space(8)&amp;link_anchor(allKeys){– allKeys}
&amp;space(8)&amp;link_anchor(allKeysForObject:){– allKeysForObject:}
&amp;space(8)&amp;link_anchor(allValues){– allValues}
&amp;space(8)&amp;link_anchor(getObjects:andKeys:){– getObjects:andKeys:}
&amp;space(8)&amp;link_anchor(objectForKey:){– objectForKey:}
&amp;space(8)&amp;link_anchor(objectsForKeys:notFoundMarker:){– objectsForKeys:notFoundMarker:}
&amp;space(8)&amp;link_anchor(valueForKey:){– valueForKey:}
***辞書の列挙(Enumerating Dictionaries)
&amp;space(8)&amp;link_anchor(keyEnumerator){– keyEnumerator}
&amp;space(8)&amp;link_anchor(objectEnumerator){– objectEnumerator}
&amp;space(8)&amp;link_anchor(enumerateKeysAndObjectsUsingBlock:){– enumerateKeysAndObjectsUsingBlock:}
&amp;space(8)&amp;link_anchor(enumerateKeysAndObjectsWithOptions:usingBlock:){– enumerateKeysAndObjectsWithOptions:usingBlock:}
***辞書の整理(Sorting Dictionaries)
&amp;space(8)&amp;link_anchor(keysSortedByValueUsingSelector:){– keysSortedByValueUsingSelector:}
&amp;space(8)&amp;link_anchor(keysSortedByValueUsingComparator:){– keysSortedByValueUsingComparator:}
&amp;space(8)&amp;link_anchor(keysSortedByValueWithOptions:usingComparator:){– keysSortedByValueWithOptions:usingComparator:}
***辞書の濾過(Filtering Dictionaries)
&amp;space(8)&amp;link_anchor(keysOfEntriesPassingTest:){– keysOfEntriesPassingTest:}
&amp;space(8)&amp;link_anchor(keysOfEntriesWithOptions:passingTest:){– keysOfEntriesWithOptions:passingTest:}
***辞書のストア(Storing Dictionaries)
&amp;space(8)&amp;link_anchor(writeToFile:atomically:){– writeToFile:atomically:}
&amp;space(8)&amp;link_anchor(writeToURL:atomically:){– writeToURL:atomically:}
***ファイル属性へのアクセス(Accessing File Attributes)
&amp;space(8)&amp;link_anchor(fileCreationDate){– fileCreationDate}
&amp;space(8)&amp;link_anchor(fileExtensionHidden){– fileExtensionHidden}
&amp;space(8)&amp;link_anchor(fileGroupOwnerAccountID){– fileGroupOwnerAccountID}
&amp;space(8)&amp;link_anchor(fileGroupOwnerAccountName){– fileGroupOwnerAccountName}
&amp;space(8)&amp;link_anchor(fileHFSCreatorCode){– fileHFSCreatorCode}
&amp;space(8)&amp;link_anchor(fileHFSTypeCode){– fileHFSTypeCode}
&amp;space(8)&amp;link_anchor(fileIsAppendOnly){– fileIsAppendOnly}
&amp;space(8)&amp;link_anchor(fileIsImmutable){– fileIsImmutable}
&amp;space(8)&amp;link_anchor(fileModificationDate){– fileModificationDate}
&amp;space(8)&amp;link_anchor(fileOwnerAccountID){– fileOwnerAccountID}
&amp;space(8)&amp;link_anchor(fileOwnerAccountName){– fileOwnerAccountName}
&amp;space(8)&amp;link_anchor(filePosixPermissions){– filePosixPermissions}
&amp;space(8)&amp;link_anchor(fileSize){– fileSize}
&amp;space(8)&amp;link_anchor(fileSystemFileNumber){– fileSystemFileNumber}
&amp;space(8)&amp;link_anchor(fileSystemNumber){– fileSystemNumber}
&amp;space(8)&amp;link_anchor(fileType){– fileType}
***記述の生成(Creating a Description)
&amp;space(8)&amp;link_anchor(description){– description}
&amp;space(8)&amp;link_anchor(descriptionInStringsFileFormat){– descriptionInStringsFileFormat}
&amp;space(8)&amp;link_anchor(descriptionWithLocale:){– descriptionWithLocale:}
&amp;space(8)&amp;link_anchor(descriptionWithLocale:indent:){– descriptionWithLocale:indent:}

**クラスメソッド
----
***&amp;anchor(option=nolink,dictionary){dictionary}
***&amp;anchor(option=nolink,dictionaryWithContentsOfFile:){dictionaryWithContentsOfFile:}
***&amp;anchor(option=nolink,dictionaryWithContentsOfURL:){dictionaryWithContentsOfURL:}
***&amp;anchor(option=nolink,dictionaryWithDictionary:){dictionaryWithDictionary:}
***&amp;anchor(option=nolink,dictionaryWithObject:forKey:){dictionaryWithObject:forKey:}
***&amp;anchor(option=nolink,dictionaryWithObjects:forKeys:){dictionaryWithObjects:forKeys:}
***&amp;anchor(option=nolink,dictionaryWithObjects:forKeys:count:){dictionaryWithObjects:forKeys:count:}
***&amp;anchor(option=nolink,dictionaryWithObjectsAndKeys:){dictionaryWithObjectsAndKeys:}

**インスタンスメソッド
----
***&amp;anchor(option=nolink,allKeys){allKeys}
***&amp;anchor(option=nolink,allKeysForObject:){allKeysForObject:}
***&amp;anchor(option=nolink,allValues){allValues}
***&amp;anchor(option=nolink,count){count}
***&amp;anchor(option=nolink,description){description}
***&amp;anchor(option=nolink,descriptionInStringsFileFormat){descriptionInStringsFileFormat}
***&amp;anchor(option=nolink,descriptionWithLocale:){descriptionWithLocale:}
***&amp;anchor(option=nolink,descriptionWithLocale:indent:){descriptionWithLocale:indent:}
***&amp;anchor(option=nolink,enumerateKeysAndObjectsUsingBlock:){enumerateKeysAndObjectsUsingBlock:}
***&amp;anchor(option=nolink,enumerateKeysAndObjectsWithOptions:usingBlock:){enumerateKeysAndObjectsWithOptions:usingBlock:}
***&amp;anchor(option=nolink,fileCreationDate){fileCreationDate}
***&amp;anchor(option=nolink,fileExtensionHidden){fileExtensionHidden}
***&amp;anchor(option=nolink,fileGroupOwnerAccountID){fileGroupOwnerAccountID}
***&amp;anchor(option=nolink,fileGroupOwnerAccountName){fileGroupOwnerAccountName}
***&amp;anchor(option=nolink,fileHFSCreatorCode){fileHFSCreatorCode}
***&amp;anchor(option=nolink,fileHFSTypeCode){fileHFSTypeCode}
***&amp;anchor(option=nolink,fileIsAppendOnly){fileIsAppendOnly}
***&amp;anchor(option=nolink,fileIsImmutable){fileIsImmutable}
***&amp;anchor(option=nolink,fileModificationDate){fileModificationDate}
***&amp;anchor(option=nolink,fileOwnerAccountID){fileOwnerAccountID}
***&amp;anchor(option=nolink,fileOwnerAccountName){fileOwnerAccountName}
***&amp;anchor(option=nolink,filePosixPermissions){filePosixPermissions}
***&amp;anchor(option=nolink,fileSize){fileSize}
***&amp;anchor(option=nolink,fileSystemFileNumber){fileSystemFileNumber}
***&amp;anchor(option=nolink,fileSystemNumber){fileSystemNumber}
***&amp;anchor(option=nolink,fileType){fileType}
***&amp;anchor(option=nolink,getObjects:andKeys:){getObjects:andKeys:}
***&amp;anchor(option=nolink,initWithContentsOfFile:){initWithContentsOfFile:}
***&amp;anchor(option=nolink,initWithContentsOfURL:){initWithContentsOfURL:}
***&amp;anchor(option=nolink,initWithDictionary:){initWithDictionary:}
***&amp;anchor(option=nolink,initWithDictionary:copyItems:){initWithDictionary:copyItems:}
***&amp;anchor(option=nolink,initWithObjects:forKeys:){initWithObjects:forKeys:}
***&amp;anchor(option=nolink,initWithObjects:forKeys:count:){initWithObjects:forKeys:count:}
***&amp;anchor(option=nolink,initWithObjectsAndKeys:){initWithObjectsAndKeys:}
***&amp;anchor(option=nolink,isEqualToDictionary:){isEqualToDictionary:}
***&amp;anchor(option=nolink,keyEnumerator){keyEnumerator}
***&amp;anchor(option=nolink,keysOfEntriesPassingTest:)keysOfEntriesPassingTest:}
***&amp;anchor(option=nolink,keysOfEntriesWithOptions:passingTest:){keysOfEntriesWithOptions:passingTest:}
***&amp;anchor(option=nolink,keysSortedByValueUsingComparator:){keysSortedByValueUsingComparator:}
***&amp;anchor(option=nolink,keysSortedByValueUsingSelector:){keysSortedByValueUsingSelector:}
***&amp;anchor(option=nolink,keysSortedByValueWithOptions:usingComparator:){keysSortedByValueWithOptions:usingComparator:}
***&amp;anchor(option=nolink,objectEnumerator){objectEnumerator}
***&amp;anchor(option=nolink,objectForKey:){objectForKey:}
***&amp;anchor(option=nolink,objectsForKeys:notFoundMarker:){objectsForKeys:notFoundMarker:}
***&amp;anchor(option=nolink,valueForKey:){valueForKey:}
***&amp;anchor(option=nolink,writeToFile:atomically:){writeToFile:atomically:}
***&amp;anchor(option=nolink,writeToURL:atomically:){writeToURL:atomically:}


----    </description>
    <dc:date>2010-02-24T22:01:41+09:00</dc:date>
  </item>
  </rdf:RDF>

