Objective-Cプログラミングの概念 (TP )

Size: px
Start display at page:

Download "Objective-Cプログラミングの概念 (TP40010810 1.0)"

Transcription

1 Objective-C プログラミングの 概 念

2 目 次 CocoaおよびCocoa Touchの 基 本 的 なプログラミングの 考 え 方 について 7 初 めに 7 この 文 書 の 使 い 方 7 必 要 事 項 8 関 連 項 目 8 クラスクラスタ(Class Cluster) 9 クラスクラスタを 使 わない 場 合 : 考 え 方 は 単 純 しかしインターフェイスは 複 雑 9 クラスクラスタを 導 入 した 場 合 : 考 え 方 は 単 純 さらにインターフェイスも 単 純 10 インスタンスの 生 成 10 公 開 のスーパークラスが 複 数 あるクラスクラスタ 11 クラスクラスタに 属 するサブクラスの 作 成 12 サブクラスを 別 途 定 義 する 方 法 13 サブクラスの 実 装 例 14 複 合 オブジェクトを 定 義 する 方 法 16 複 合 オブジェクトの 例 17 クラスファクトリメソッド 20 デリゲートとデータソース 22 デリゲートの 仕 組 み 22 デリゲートメッセージの 形 式 24 デリゲートとアプリケーションフレームワーク 26 フレームワーククラスのデリゲートになること 27 delegateプロパティに 基 づくオブジェクトの 検 索 27 データソース 28 カスタムクラスにデリゲートを 実 装 する 手 順 28 イントロスペクション 30 継 承 関 係 の 評 価 30 メソッドの 実 装 とプロトコルへの 準 拠 31 オブジェクトの 比 較 32 オブジェクトの 割 り 当 て 35 2

3 目 次 オブジェクトの 初 期 化 36 イニシャライザの 形 式 36 イニシャライザに 関 する 問 題 37 イニシャライザの 実 装 39 複 数 のイニシャライザ 指 定 イニシャライザ 42 Model-View-Controllerパターン 45 MVCオブジェクトの 役 割 と 関 係 45 モデルオブジェクトはデータや 基 本 的 な 振 る 舞 いをカプセル 化 45 ビューオブジェクトは 情 報 をユーザ 向 けに 表 現 46 コントローラオブジェクトはモデルをビューに 結 びつける 47 役 割 の 兼 務 47 Cocoaの 各 種 のコントローラオブジェクト 48 複 合 デザインパターンとしてのMVC 49 MVCアプリケーションの 設 計 ガイドライン 52 Cocoa(Mac OS X)におけるModel-View-Controller 54 オブジェクトモデリング 56 エンティティ 57 アトリビュート 57 リレーション 58 リレーションの 基 数 (cardinality)と 所 有 関 係 (Ownership) 59 プロパティへのアクセス 60 キー 60 値 60 キーパス 61 オブジェクトの 可 変 性 63 オブジェクトに 可 変 と 不 変 の2 種 類 がある 理 由 63 可 変 オブジェクトに 関 わるプログラミング 65 可 変 オブジェクトの 生 成 と 変 換 65 可 変 インスタンス 変 数 を 保 存 する または 戻 り 値 として 返 す 場 合 の 取 り 扱 い 66 可 変 オブジェクトの 受 け 取 り 67 コレクション 中 の 可 変 オブジェクト 69 アウトレット 70 Receptionistパターン 72 実 践 的 なReceptionistデザインパターン 72 Receptionistパターンが 向 いている 状 況 75 3

4 目 次 ターゲット-アクション 機 構 77 ターゲット 77 アクション 78 AppKitフレームワークにおけるターゲット-アクション 80 コントロール 部 品 セル メニュー 項 目 80 ターゲットやアクションの 設 定 81 AppKitで 定 義 されているアクション 82 UIKitのターゲット-アクション 機 構 83 フレームワークの 相 互 乗 り 入 れについて 85 書 類 の 改 訂 履 歴 88 4

5 図 表 リスト クラスクラスタ(Class Cluster) 9 図 1-1 数 値 クラス 群 の 素 朴 な 階 層 9 図 1-2 複 雑 になった 数 値 クラス 階 層 10 図 1-3 数 値 クラス 群 に クラスクラスタ パターンを 適 用 した 設 計 10 図 1-4 クラスタオブジェクトを 埋 め 込 んだオブジェクト 16 表 1-1 クラスクラスタとその 公 開 スーパークラス 11 表 1-2 派 生 メソッドとその 実 装 例 14 デリゲートとデータソース 22 図 3-1 デリゲートの 仕 組 み 23 図 3-2 デリゲートが 関 与 する より 現 実 的 な 処 理 の 流 れ 24 リスト 3-1 戻 り 値 があるデリゲートメソッドの 例 24 リスト 3-2 voidを 返 すデリゲートメソッドの 例 25 イントロスペクション 30 リスト 4-1 classメソッド superclassメソッドの 使 い 方 30 リスト 4-2 iskindofclass:の 使 い 方 31 リスト 4-3 respondstoselector:の 使 用 例 32 リスト 4-4 conformstoprotocol:の 使 用 例 32 リスト 4-5 isequal:の 使 用 例 33 リスト 4-6 isequal:のオーバーライド 33 オブジェクトの 初 期 化 36 図 6-1 継 承 チェーンをさかのぼって 初 期 化 41 図 6-2 二 次 イニシャライザと 指 定 イニシャライザの 関 係 43 Model-View-Controllerパターン 45 図 7-1 複 合 パターンとしてのMVC( 従 来 型 ) 50 図 7-2 複 合 パターンとしてのMVC(Cocoa) 51 図 7-3 nibファイルの 所 有 者 としてこれを 管 理 する 調 整 型 コントローラ 52 オブジェクトモデリング 56 図 8-1 従 業 員 管 理 アプリケーションのオブジェクト 図 57 図 8-2 従 業 員 のテーブルビュー 58 5

6 図 表 リスト 図 8-3 従 業 員 管 理 アプリケーションに 現 れる リレーション 59 図 8-4 リレーションの 基 数 59 図 8-5 従 業 員 管 理 アプリケーションのオブジェクトグラフ 61 図 8-6 従 業 員 のテーブルビューに 部 署 名 が 表 示 されている 様 子 62 オブジェクトの 可 変 性 63 リスト 9-1 可 変 インスタンス 変 数 の 不 変 なコピーを 返 すコード 例 67 リスト 9-2 書 き 換 えられる 可 能 性 があるオブジェクトのスナップショット 作 成 68 Receptionistパターン 72 図 11-1 キー 値 監 視 による 更 新 通 知 を 主 操 作 キューに 跳 ね 返 らせる 様 子 73 リスト 11-1 Receptionistクラスの 宣 言 73 リスト 11-2 Receptionistオブジェクトを 生 成 するクラスファクトリメソッド 74 リスト 11-3 KVO 通 知 の 処 理 75 リスト 11-4 Receptionistオブジェクトの 生 成 75 ターゲット-アクション 機 構 77 図 12-1 コントロール 部 品 とセルから 成 るアーキテクチャにおける ターゲット-アクション 機 構 の 動 作 原 理 81 フレームワークの 相 互 乗 り 入 れについて 85 表 13-1 Core FoundationとFoundationとで 互 換 性 のあるデータ 型 86 6

7 CocoaおよびCocoa Touchの 基 本 的 なプログラ ミングの 考 え 方 について Cocoa / Cocoa Touchフレームワークには 多 数 のプログラミングインターフェイスが 組 み 込 まれていま す しかしその 基 盤 となる 考 え 方 ( 概 念 )を 知 らなければ どのように 扱 うべきか 理 解 できないで しょう この 概 念 はフレームワーク 核 心 部 の 設 計 において 基 本 原 理 を 成 すものです 知 っていれば ソフトウェア 開 発 の 進 め 方 が 違 ってくるはずです Model layer Controller layer View layer Application delegate System frameworks 初 めに このドキュメントは Cocoa / Cocoa Touchフレームワークの 中 心 概 念 やデザインパターン 機 構 に 関 する 記 事 を 集 めたものです 各 記 事 はアルファベット 順 に 並 んでいます この 文 書 の 使 い 方 このドキュメントを 通 読 すれば Cocoa / Cocoa Touchアプリケーション 開 発 に 関 する 重 要 事 項 が 身 に つくはずです しかし 多 くの 場 合 このドキュメントの 記 事 は 次 のような 経 緯 で 目 にとまったので しょう ほかのドキュメント( 特 にiOSやMac OS Xの 開 発 初 心 者 向 けドキュメント)からリンクをたどって 見 つけた 7

8 CocoaおよびCocoa Touchの 基 本 的 なプログラミングの 考 え 方 について 必 要 事 項 埋 め 込 み 小 記 事 ( 語 や 字 句 についている 破 線 の 下 線 をクリックすると 現 れる 記 事 )に 最 も 信 頼 できる 解 説 として 示 されているリンクをたどった 必 要 事 項 プログラミング( 特 にオブジェクト 指 向 言 語 による 開 発 )の 経 験 がある 人 を 対 象 とします 関 連 項 目 このドキュメントで 紹 介 した 概 念 のうち 言 語 に 関 係 するものについては The Objective-C Programming Language により 詳 しい 解 説 が 載 っています 8

9 クラスクラスタ(Class Cluster) クラスクラスタ は Foundationフレームワークに 多 用 されているデザインパターンです これ は ある 公 開 抽 象 スーパークラスから 派 生 した 多 数 の 非 公 開 具 象 サブクラス 群 をまとめたもののこ とです この 方 式 には オブジェクト 指 向 フレームワークにおいて 豊 富 な 機 能 をそのまま 提 供 しつ つ 外 部 に 対 してより 簡 潔 なアーキテクチャを 公 開 できる という 利 点 があります Abstract Factory デザインパターンを 基 盤 とした 概 念 です クラスクラスタを 使 わない 場 合 : 考 え 方 は 単 純 しかしイン ターフェイスは 複 雑 クラスクラスタのアーキテクチャとその 利 点 を 例 示 するため さまざまな 型 (char int float double)の 数 値 を 格 納 するクラスの 階 層 を 構 築 する という 問 題 を 取 り 上 げます それぞれの 数 値 型 は (ある 型 から 別 の 型 に 変 換 できる 文 字 列 として 表 せるなど) 共 通 の 特 性 が 多 いので すべて 同 じクラスで 表 現 することもできなくはありません しかし 型 によってストレージに 対 する 要 件 が 異 なるため この 方 式 は 効 率 に 問 題 があります そこで 図 1-1のようなクラス 階 層 のアーキテクチャ にする という 解 決 方 法 が 思 い 浮 かびます 図 1-1 数 値 クラス 群 の 素 朴 な 階 層 Numberは 抽 象 スーパークラスで 各 サブクラスに 共 通 のメソッドや 演 算 を 宣 言 しています しかし 数 値 を 格 納 するインスタンス 変 数 はありません サブクラスの 側 でこの 変 数 を 宣 言 し Numberに 宣 言 されたプログラムインターフェイスをそれぞれ 実 装 します 9

10 クラスクラスタ(Class Cluster) クラスクラスタを 導 入 した 場 合 : 考 え 方 は 単 純 さらにインターフェイスも 単 純 これを 見 る 限 りでは 設 計 は 比 較 的 単 純 です しかし Cの 基 本 型 にはさまざまな 修 飾 が 可 能 である ことを 考 慮 すると 実 際 のクラス 階 層 は 図 1-2のように 複 雑 になります 図 1-2 複 雑 になった 数 値 クラス 階 層 数 値 を 保 持 するクラスを 個 別 に 定 義 する という 素 朴 な 考 え 方 では たちまちクラスの 数 がふくれ あがってしまうのです これに 対 し クラスクラスタの 概 念 を 取 り 入 れると 概 念 の 簡 潔 さをそのま ま 反 映 した 設 計 になります クラスクラスタを 導 入 した 場 合 : 考 え 方 は 単 純 さらにイン ターフェイスも 単 純 クラスクラスタ デザインパターンを 適 用 して 設 計 し 直 すと クラス 階 層 は 図 1-3のようになりま す( 非 公 開 クラスは 灰 色 ) 図 1-3 数 値 クラス 群 に クラスクラスタ パターンを 適 用 した 設 計 外 部 から 見 ると ここには 公 開 クラスであるNumberしかありません 個 々の 型 に 対 応 したサブクラ スのインスタンスは どうやって 生 成 するのでしょうか その 答 えは 抽 象 スーパークラスがインス タンス 生 成 を 行 う というものです インスタンスの 生 成 クラスクラスタの 抽 象 スーパークラスには 非 公 開 サブクラスのインスタンス 生 成 メソッドを 宣 言 し なければなりません 生 成 メソッドが 起 動 されると スーパークラスは 自 らの 責 任 で 該 当 するサブ クラスのオブジェクトを 生 成 して 返 します 呼 び 出 し 側 でサブクラスを 選 択 するのではありません (したくても 不 可 能 です) 10

11 クラスクラスタ(Class Cluster) 公 開 のスーパークラスが 複 数 あるクラスクラスタ Foundationフレームワークでは 一 般 に オブジェクトの 生 成 に +classname... という 形 の 名 前 のメソッド または alloc... および init... という 名 前 のメソッドを 使 います たとえば FoundationフレームワークのNSNumberクラスの 場 合 次 のメッセージを 送 信 して 数 値 オブジェクトを 生 成 します NSNumber *achar = [NSNumber numberwithchar: a ]; NSNumber *anint = [NSNumber numberwithint:1]; NSNumber *afloat = [NSNumber numberwithfloat:1.0]; NSNumber *adouble = [NSNumber numberwithdouble:1.0]; ファクトリメソッドの 戻 り 値 として 取 得 したオブジェクトは 明 示 的 に 解 放 する 必 要 がありません 一 方 多 くのクラスには alloc... および init... という 標 準 メソッドがあり これでオブ ジェクトを 生 成 することも 可 能 ですが その 解 放 ( 割 り 当 て 解 除 )は 呼 び 出 し 側 で 行 う 必 要 がありま す 戻 り 値 である 各 オブジェクト(aChar anint afloat adouble)は それぞれ 異 なる 非 公 開 サブ クラスに 属 しているかも 知 れません( 実 際 その 通 りです) 各 オブジェクトが 属 する 具 体 的 なクラス は 非 公 開 なので 分 かりませんが インターフェイスは 抽 象 スーパークラスNSNumberに 宣 言 があり 公 開 されています 厳 密 には 正 しくないのですが achar anint afloat adoubleはすべて NSNumberクラスのインスタンスである と 考 えても 構 いません 生 成 したのはNSNumberのクラスメ ソッドですし アクセスする 際 にもNSNumberに 宣 言 されたインスタンスメソッドを 使 うからです 公 開 のスーパークラスが 複 数 あるクラスクラスタ 先 の 例 では ひとつの 抽 象 公 開 クラスに 多 数 の 非 公 開 サブクラスが 使 うインターフェイスが 宣 言 さ れていました これは 純 粋 な 意 味 のクラスクラスタと 言 えます これに 対 し 複 数 の 抽 象 公 開 ク ラスに クラスタで 用 いるインターフェイスが 宣 言 されている 場 合 があります むしろその 方 が 望 ま しいことも 多 いのです Foundationフレームワークにはいくつも 実 例 があります( 表 1-1を 参 照 ) 表 1-1 クラスクラスタとその 公 開 スーパークラス クラスクラスタ NSData NSArray 公 開 スーパークラス NSData NSMutableData NSArray NSMutableArray 11

12 クラスクラスタ(Class Cluster) クラスクラスタに 属 するサブクラスの 作 成 クラスクラスタ NSDictionary NSString 公 開 スーパークラス NSDictionary NSMutableDictionary NSString NSMutableString ほかにもこの 種 のクラスタはありますが いずれもインターフェイスを2つの 抽 象 クラスに 分 けて 宣 言 しています すなわち どのクラスタオブジェクトも 応 答 できるメソッドを 一 方 の 公 開 クラス 内 容 の 変 更 を 許 すオブジェクト( 可 変 オブジェクト)に 対 してのみ 実 行 できるメソッドをもう 一 方 の 公 開 クラスに 宣 言 しているのです このようにクラスタのインターフェイスを 分 離 すると オブジェクト 指 向 フレームワークにおいて プログラムの 記 述 能 力 ( 表 現 力 )が 豊 かになります たとえば 書 籍 を 表 すオブジェクトに 次 のメ ソッドが 宣 言 されているとしましょう - (NSString *)title; 書 籍 オブジェクトは 自 身 のインスタンス 変 数 をそのまま 返 しても 新 たに 生 成 した 文 字 列 オブジェ クトにコピーして 返 すように 実 装 しても 構 いません 戻 り 値 の 文 字 列 は 変 更 されない( 不 変 である) ことが この 宣 言 に 明 らかに 表 現 されているからです 変 更 しようとすれば コンパイラが 警 告 を 出 します クラスクラスタに 属 するサブクラスの 作 成 クラスクラスタのアーキテクチャには 簡 明 さと 拡 張 性 のトレードオフがあります 少 数 の 公 開 クラ スが 多 数 の 非 公 開 クラスの 代 理 として 振 る 舞 うので フレームワークを 使 う 側 にとっては 使 い 方 を 調 べるのも 実 際 に 使 うのも 容 易 になります 一 方 クラスタにサブクラスを 追 加 して 実 装 する 側 に とっては 若 干 手 間 が 増 えてしまうかも 知 れません しかし サブクラスを 新 たに 定 義 することが 滅 多 にないのであれば クラスタアーキテクチャは 明 らかに 利 点 の 多 いものになります Foundation フレームワークでは まさにこのような 状 況 のときにクラスタを 使 っています 必 要 な 機 能 がクラスタにない 場 合 サブクラスを 別 途 作 成 しなければならないかも 知 れません たと えば NSArrayのような 配 列 オブジェクトのクラスクラスタで ストレージがメモリ 上 ではなくファ イル 上 にあるものが 欲 しいとしましょう この 場 合 基 盤 となるストレージ 機 構 を 変 えることになる ので サブクラスを 別 に 作 成 しなければなりません 12

13 クラスクラスタ(Class Cluster) クラスクラスタに 属 するサブクラスの 作 成 一 方 クラスタから 生 成 したオブジェクトを 埋 め 込 むクラスを 定 義 するだけで 充 分 (しかも 容 易 )な こともあります たとえば あるデータの 値 が 変 わったとき 警 告 が 届 くようにしたい という 状 況 を 考 えてみましょう この 場 合 Foundationフレームワークに 定 義 されたデータオブジェクトをラッ プする 単 純 なクラスを 用 意 する 方 が 簡 単 かも 知 れません このラッパクラスに 値 を 変 更 する 旨 の メッセージを 横 取 り し ( 警 告 を 出 すなど) 独 自 の 処 理 を 実 行 してから 埋 め 込 みデータオブ ジェクトに 値 変 更 メッセージを 転 送 する という 処 理 を 実 装 すればよいのです 以 上 のように オブジェクトのストレージを 独 自 の 方 法 で 管 理 する 必 要 があれば サブクラスを 別 途 定 義 してください そうでなければ 標 準 的 なFoundationフレームワークのオブジェクトを 埋 め 込 ん だ 複 合 オブジェクト(ラッパ)を 定 義 するとよいでしょう 以 下 この2つの 方 式 について 詳 しく 説 明 します サブクラスを 別 途 定 義 する 方 法 クラスクラスタに 新 たにサブクラスを 作 成 する 場 合 次 のように 進 めてください クラスタの 抽 象 スーパークラスから 派 生 したサブクラスを 作 成 する 独 自 のストレージを 宣 言 する スーパークラスのイニシャライザ(initializer)をすべてオーバーライドする スーパークラスのプリミティブメソッド( 下 記 参 照 )をオーバーライドする クラスタの 抽 象 スーパークラスは クラスタ 階 層 の 中 で 唯 一 外 部 に 公 開 されているノードなので 第 1の 条 件 が 必 要 な 理 由 は 明 らかです したがって 当 然 このサブクラスはクラスタのインターフェ イスを 継 承 します しかしインスタンス 変 数 は 抽 象 スーパークラスに 宣 言 されていないので 継 承 することはありません そこで 第 2の 条 件 として サブクラス 側 に 必 要 なインスタンス 変 数 を 宣 言 し なければならないことになります 最 後 に 継 承 したメソッドのうち インスタンス 変 数 に 直 接 アク セスするものは すべてオーバーライドしなければなりません このようなメソッドをプリミティブ メソッドと 言 います クラスのプリミティブメソッドは そのインターフェイスの 基 盤 となります たとえばNSArrayクラ スを 考 えてみましょう ここには オブジェクトの 配 列 を 管 理 するオブジェクトを 対 象 とするイン ターフェイスが 宣 言 されています 概 念 的 には 配 列 は 数 多 くのデータ 項 目 を 収 容 し インデックス を 使 ってそれぞれの 項 目 にアクセスするようになっています NSArrayではこの 抽 象 概 念 を count およびobjectAtIndex:という2つのプリミティブメソッドで 表 しています この2つを 基 盤 として ほかのメソッド( 派 生 メソッド)を 実 装 できます 表 1-2に 派 生 メソッドの 例 を2つ 示 します 13

14 クラスクラスタ(Class Cluster) クラスクラスタに 属 するサブクラスの 作 成 表 1-2 派 生 メソッドとその 実 装 例 派 生 メソッド lastobject containsobject: 実 装 例 末 尾 のオブジェクトを 取 得 する ( 実 装 ) 配 列 オブジェクトに[self objectatindex: ([self count] - 1)]というメッセージを 送 信 する 引 数 と 等 しいオブジェクトを 検 索 する ( 実 装 )インデックス 値 を 増 や しながらobjectAtIndex:メッセージを 順 次 送 信 し 該 当 するオブジェ クトが 見 つかるか すべてのオブジェクトをテストするまで 繰 り 返 す プリミティブメソッドと 派 生 メソッドを 区 別 することにより サブクラスの 実 装 が 容 易 になります 継 承 したプリミティブメソッドさえ 適 切 にオーバーライドすれば 派 生 メソッドはすべて 正 常 に 動 作 するからです プリミティブメソッドと 派 生 メソッドの 区 別 は 初 期 化 が 済 んだオブジェクトのインターフェイスに 関 するものです init...メソッドの 取 り 扱 いについては 別 に 検 討 しなければなりません 一 般 に クラスタの 抽 象 スーパークラスには 多 数 のinit...メソッド + classnameメソッドを 宣 言 することになります インスタンスの 生 成 (10 ページ)で 説 明 したように 抽 象 クラス 側 では どのinit... / + classnameメソッドが 呼 び 出 されたか に 基 づいて 実 際 に 生 成 するインスタンス の 具 象 サブクラスを 判 断 します 抽 象 クラスにこういったメソッドをいくつも 宣 言 するのは サブク ラスに 対 する 便 宜 のためと 考 えてもよいでしょう 抽 象 クラスにはインスタンス 変 数 がないので 初 期 化 メソッドは 不 要 です サブクラスでは init...メソッド(インスタンス 変 数 を 初 期 化 する 必 要 がある 場 合 )と 場 合 に よっては+ classnameメソッドを 独 自 に 宣 言 する 必 要 があります 継 承 するからといって 省 略 する ことはできません 初 期 化 チェーンのリンクを 維 持 するため 指 定 イニシャライザ(designated initializer)の 実 装 中 に スーパークラスの 対 応 する 指 定 イニシャライザを 起 動 する 記 述 が 必 要 です さらに 継 承 するほかのイニシャライザもすべてオーバーライドし 理 に 適 った 動 作 を 実 装 する 必 要 があります( 指 定 イニシャライザについては The Objective-C Programming Language の The Runtime System を 参 照 ) クラスクラスタでは 抽 象 スーパークラスの 指 定 イニシャライザは 常 にinitという 名 前 です サブクラスの 実 装 例 たとえばMonthArrayという 名 前 で NSArrayのサブクラスを 作 成 することを 考 えましょう インデッ クスに 対 応 する 月 の 名 前 を 返 すクラスです とは 言 っても MonthArrayオブジェクトが 月 の 名 前 の 配 列 をインスタンス 変 数 として 持 っているわけではありません 指 定 されたインデックス 位 置 に 相 当 する 名 前 を 返 すメソッド(objectAtIndex:)は 定 数 文 字 列 を 返 します したがって MonthArray オブジェクトがアプリケーション 中 にいくつあっても 全 体 で12 個 の 文 字 列 オブジェクトを 割 り 当 て るだけで 足 ります 14

15 クラスクラスタ(Class Cluster) クラスクラスタに 属 するサブクラスの 作 成 MonthArrayクラスの 宣 言 は 次 のようになります #import MonthArray : NSArray { + montharray; - (unsigned)count; - MonthArrayクラスに 初 期 化 を 要 するインスタンス 変 数 はないので init...メソッドの 宣 言 はない ことに 注 意 してください 継 承 するプリミティブメソッドは 上 述 のように count objectatindex: の2つだけです MonthArrayクラスの 実 装 は 次 のようになります #import MonthArray static MonthArray *sharedmontharray = nil; static NSString *months[] ; + montharray { if (!sharedmontharray) { sharedmontharray = [[MonthArray alloc] init]; return sharedmontharray; 15

16 クラスクラスタ(Class Cluster) クラスクラスタに 属 するサブクラスの 作 成 - (unsigned)count { return 12; - objectatindex:(unsigned)index { if (index >= [self count]) [NSException raise:nsrangeexception format:@"***%s: index (%d) beyond bounds (%d)", sel_getname(_cmd), index, [self count] - 1]; else return MonthArrayでは 継 承 したプリミティブメソッドをオーバーライドしているので 派 生 メソッドはオー バーライドしなくても 正 常 に 動 作 します NSArrayには lastobject containsobject: sortedarrayusingselector: objectenumerator その 他 のメソッドがありますが いずれも MonthArrayオブジェクトでも 問 題 なく 動 作 するのです 複 合 オブジェクトを 定 義 する 方 法 独 自 のオブジェクトを 別 途 用 意 し 非 公 開 のクラスタオブジェクトをラップする( 埋 め 込 む)ことに より 複 合 オブジェクトを 作 成 できます この 複 合 オブジェクトは クラスタオブジェクトの 基 本 機 能 をそのまま 利 用 し 特 別 な 方 法 で 処 理 する 必 要 があるメッセージを 横 取 りするだけです この 方 式 には コードをそれほど 記 述 することなく Foundationフレームワークが 提 供 する 高 品 質 のコードを 活 用 できる という 利 点 があります 図 1-4にそのアーキテクチャを 示 します 図 1-4 クラスタオブジェクトを 埋 め 込 んだオブジェクト 16

17 クラスクラスタ(Class Cluster) クラスクラスタに 属 するサブクラスの 作 成 複 合 オブジェクトは 自 分 自 身 を クラスタの 抽 象 スーパークラスから 派 生 したサブクラスとして 宣 言 しなければなりません したがって スーパークラスのプリミティブメソッドをオーバーライドする 必 要 があります 派 生 メソッドもオーバーライドして 構 いませんが これはプリミティブメソッドを 呼 び 出 す 形 で 動 作 するので 通 常 その 必 要 はありません NSArrayクラスのcountメソッドは オーバーライドするべきプリミティブメソッドの 一 例 です 複 合 オブジェクト 側 における 実 装 そのものは 次 のように 非 常 に 簡 単 です - (unsigned)count { return [embeddedobject count]; しかし オーバーライドする 側 の 実 装 に 独 自 の 処 理 を 組 み 込 むことも 可 能 です 複 合 オブジェクトの 例 複 合 オブジェクトの 例 として 可 変 配 列 オブジェクトを 考 えてみましょう 実 際 に 内 容 を 変 更 する 前 に 所 定 の 基 準 でその 可 否 を 検 査 するものとします 次 に 示 すのは ValidatingArrayというクラス です 標 準 的 な 可 変 配 列 オブジェクトを 埋 め 込 んでいます ValidatingArrayでは スーパークラス であるNSArrayおよびNSMutableArrayのプリミティブメソッドを すべてオーバーライドしていま す さらに インスタンスの 生 成 や 初 期 化 に 用 いる array validatingarray initの 各 メソッド も 宣 言 しています #import ValidatingArray : NSMutableArray { NSMutableArray *embeddedarray; + validatingarray; - init; - (unsigned)count; - objectatindex:(unsigned)index; - (void)addobject:object; - (void)replaceobjectatindex:(unsigned)index withobject:object; - (void)removelastobject; - (void)insertobject:object atindex:(unsigned)index; 17

18 クラスクラスタ(Class Cluster) クラスクラスタに 属 するサブクラスの 作 成 - 実 装 ファイルを 見 ると ValidatingArrayクラスのinitメソッドでは 埋 め 込 みオブジェクトを 生 成 し 変 数 embeddedarrayに 代 入 していることが 分 かります 単 に 配 列 にアクセスするだけで 内 容 を 変 更 しないメッセージは 単 に 埋 め 込 みオブジェクトに 中 継 しているだけです 内 容 を 変 更 しうる メッセージは その 指 定 を 検 査 し(ここでは 擬 似 コードのみ) 合 格 の 場 合 にのみ 埋 め 込 みオブジェ クトに 中 継 します #import ValidatingArray - init { self = [super init]; if (self) { embeddedarray = [[NSMutableArray allocwithzone:[self zone]] init]; return self; + validatingarray { return [[[self alloc] init] autorelease]; - (unsigned)count { return [embeddedarray count]; - objectatindex:(unsigned)index { 18

19 クラスクラスタ(Class Cluster) クラスクラスタに 属 するサブクラスの 作 成 return [embeddedarray objectatindex:index]; - (void)addobject:object { if (/* modification is valid */) { [embeddedarray addobject:object]; - (void)replaceobjectatindex:(unsigned)index withobject:object; { if (/* modification is valid */) { [embeddedarray replaceobjectatindex:index withobject:object]; - (void)removelastobject; { if (/* modification is valid */) { [embeddedarray removelastobject]; - (void)insertobject:object atindex:(unsigned)index; { if (/* modification is valid */) { [embeddedarray insertobject:object atindex:index]; - (void)removeobjectatindex:(unsigned)index; { if (/* modification is valid */) { [embeddedarray removeobjectatindex:index]; 19

20 クラスファクトリメソッド クラスファクトリメソッドをクラスに 実 装 するのは クライアントの 便 宜 のためと 言 うことができま す 割 り 当 てと 初 期 化 を 一 括 して 実 行 し 生 成 したオブジェクトを 返 します しかし オブジェクト の 受 け 取 り 手 (クライアント)はオブジェクトを 所 有 しないので (オブジェクト 所 有 の 考 え 方 に 従 い)これを 解 放 する 責 任 も 負 いません クラスファクトリメソッドの 名 前 は + (type )classname... という 形 です(ここで classname はクラス 名 から 接 頭 辞 を 除 いたもの) Cocoaには 特 にデータ 値 をカプセル 化 するクラスに 多 くの 実 例 があります たとえばNSDateに は 次 のようなクラスファクトリメソッドがあります + (id)datewithtimeintervalsincenow:(nstimeinterval)secs; + (id)datewithtimeintervalsincereferencedate:(nstimeinterval)secs; + (id)datewithtimeintervalsince1970:(nstimeinterval)secs; また NSDataには 次 のようなファクトリメソッドがあります + (id)datawithbytes:(const void *)bytes length:(unsigned)length; + (id)datawithbytesnocopy:(void *)bytes length:(unsigned)length; + (id)datawithbytesnocopy:(void *)bytes length:(unsigned)length freewhendone:(bool)b; + (id)datawithcontentsoffile:(nsstring *)path; + (id)datawithcontentsofurl:(nsurl *)url; + (id)datawithcontentsofmappedfile:(nsstring *)path; ファクトリメソッドは 単 なる 便 宜 のためではない 目 的 で 実 装 することもあります 単 に 割 り 当 てと 初 期 化 を 一 括 実 行 するだけでなく この2つのプロセス 間 で 情 報 をやり 取 りすることができるのです たとえば プロパティリストファイルを 読 み それに 従 ってコレクションオブジェクトを 初 期 化 しな ければならないとしましょう ファイルには コレクションの 要 素 (NSStringオブジェクト NSData オブジェクト NSNumberオブジェクト その 他 )が 多 数 エンコードされています ファクトリメソッ ドでは コレクション 用 に 必 要 なメモリ 量 を 見 積 もるため ファイルを 読 んでプロパティリストを 解 析 し( 初 期 化 の 一 部 を 先 取 りして 実 行 ) 要 素 の 数 や 各 要 素 の 型 を 調 べます 20

21 クラスファクトリメソッド あるいはNSWorkspaceクラスのように インスタンスがシングルトンであることを 保 証 する 役 割 を クラスファクトリメソッドが 担 うこともあります init...メソッドでも プログラムの 実 行 中 を 通 してインスタンスが1つだけであることを 保 証 できますが そのためには 生 の インスタンスを いったん 割 り 当 てた 後 メモリマネージドコードで 解 放 する 必 要 があります 一 方 ファクトリメ ソッドを 実 装 すれば 使 われることのないオブジェクトのために 盲 目 的 にメモリを 割 り 当 てる 必 要 はありません( 次 の 例 を 参 照 ) static AccountManager *DefaultManager = nil; + (AccountManager *)defaultmanager { if (!DefaultManager) DefaultManager = [[self allocwithzone:null] init]; return DefaultManager; 21

22 デリゲートとデータソース デリゲート(delegate, 委 譲 )とは あるオブジェクトがプログラム 中 でイベントに 遭 遇 したとき それ に 代 わって または 連 携 して 処 理 するオブジェクトのことです デリゲートとして 指 定 したオブジェ クトが レスポンダオブジェクトであることも 少 なくありません すなわち AppKitならば NSResponder UIKitならばUIResponderを 継 承 し ユーザイベントに 応 答 するオブジェクトです デ リゲートは 当 該 イベントに 関 してユーザインターフェイスの 制 御 を 委 ねられる あるいは 少 なくと も アプリケーション 特 有 の 方 法 でそのイベントを 解 釈 するよう 依 頼 されるオブジェクトです デリゲート(delegation)の 効 用 を 理 解 するため テキストフィールド(NSTextFieldやUITextField のインスタンス) テーブルビュー(NSTableViewやUITableViewのインスタンス)などといった 既 製 のCocoaオブジェクトと 比 較 してみるとよいでしょう こういったオブジェクトは 与 えられた 役 割 を 汎 用 的 なやり 方 で 果 たすよう 設 計 されています たとえばAppKitフレームワークのウインド ウオブジェクトは コントロール 部 品 に 対 するマウス 操 作 に 応 答 し ウインドウを 閉 じる 大 きさを 変 える 移 動 する などと 解 釈 して 処 理 します このように 汎 用 的 でごく 限 られた 振 る 舞 いしかで きないので 必 然 的 に イベントがアプリケーションのほかの 部 分 にどのような 影 響 を 及 ぼすか を 意 識 することもあまりありません 特 に アプリケーション 特 有 の 振 る 舞 いに 対 する 影 響 は まった く 意 識 しないのです デリゲートは カスタムオブジェクトがアプリケーション 固 有 の 振 る 舞 いを 既 製 のオブジェクトに 伝 えるための 手 段 となります デリゲートというプログラム 機 構 により オブジェクトには プログラムのほかの 部 分 で( 通 常 は ユーザアクションに 伴 って) 生 じた 変 化 に 応 じて 自 分 自 身 の 外 観 や 状 態 を 調 整 する 機 会 が 与 えられ ます さらに 重 要 なのは ほかのオブジェクトの 振 る 舞 いを その 派 生 オブジェクトでなくても 変 更 できる ということです デリゲートは 大 部 分 がカスタムオブジェクトであり したがって 当 然 汎 用 的 な(デリゲートの)オブジェクトが 認 識 しえないような アプリケーション 特 有 のロジックが 組 み 込 まれています デリゲートの 仕 組 み デリゲートの 設 計 は 単 純 です( 図 3-1 (23 ページ)を 参 照 ) 委 譲 する 側 のクラス(デリゲートク ラス)には 一 般 にdelegateという 名 前 の アウトレットまたはプロパティがあります アウトレッ トの 場 合 は 値 の 設 定 / 取 得 メソッドもあります さらに 実 装 はありませんが 公 式 (formal)また は 非 公 式 (informal)のプロトコルを 構 成 するメソッドがいくつか 宣 言 されています 省 略 可 のメソッ ドを 用 いる 公 式 プロトコル(Objective-C 2.0の 機 能 )の 方 を 推 奨 しますが Cocoaフレームワークでは どちらのプロトコルも 使 われています 22

23 デリゲートとデータソース デリゲートの 仕 組 み 非 公 式 プロトコルを 使 う 場 合 デリゲートクラス 側 ではメソッドをNSObjectのカテゴリに 宣 言 し 一 方 デリゲート 側 では 自 分 自 身 とデリゲートオブジェクトとが 連 携 するために 何 らかの 形 で 関 与 する あるいはデリゲートオブジェクトのデフォルトの 振 る 舞 いに 影 響 を 与 えるメソッドだけを 選 ん で 実 装 します 一 方 デリゲートクラスに 公 式 プロトコルが 宣 言 されている 場 合 実 装 が 省 略 可 であ る 旨 の 印 がついていれば 別 ですが 一 般 に 宣 言 されたメソッドは 実 装 しなければなりません デリゲートの 仕 組 みを 利 用 する 場 合 図 3-1に 示 すような 設 計 になります 図 3-1 デリゲートの 仕 組 み windowshouldclose: windowdelegate User just clicked close button; should window close? No Don't close. The window has unsaved data. プロトコルのメソッドは デリゲートオブジェクトが 処 理 し あるいはそう 期 待 される 重 要 なイベン トに その 旨 の 印 をつけます デリゲートオブジェクトは 当 該 イベントをデリゲート( 被 委 譲 オブ ジェクト)に 通 知 します あるいは 今 まさに 発 生 しようとしているイベントについて デリゲート 側 でユーザの 入 力 や 承 認 を 求 めるよう 要 求 します たとえば Mac OS X 上 のウインドウの 閉 じる ボタンをユーザがクリックすると ウインドウオブジェクトはwindowShouldClose:メッセージをデ 23

24 デリゲートとデータソース デリゲートメッセージの 形 式 リゲートに 送 ります デリゲートはこの 機 会 を 利 用 して たとえば 未 保 存 のデータがウインドウに 関 連 づけられている 場 合 に 閉 じる 処 理 を 禁 止 し あるいは 遅 延 させることができます( 図 3-2を 参 照 ) 図 3-2 デリゲートが 関 与 する より 現 実 的 な 処 理 の 流 れ awindow adelegate windowshouldclose: ➊ Yes ➍ ➋ ➌ デリゲートオブジェクトは デリゲートに 該 当 するメソッドが 実 装 されている 場 合 に 限 り メッセー ジを 送 信 します この 判 断 は NSObjectから 継 承 した デリゲートのrespondsToSelector:メソッ ドを 呼 び 出 すことにより 行 います デリゲートメッセージの 形 式 デリゲートメソッドの 名 前 のつけ 方 には 規 約 があります メソッド 名 の 先 頭 は デリゲートする 側 の (AppKitまたはUIKitの)オブジェクト すなわち アプリケーション ウインドウ コントロール 部 品 などの 名 前 です すべて 小 文 字 にし 接 頭 辞 ( NS UI )を 省 いて 使 います ( 常 にではあ りませんが) 通 常 はこの 後 に 報 告 されたイベントの 時 制 を 表 す 助 動 詞 が 続 きます 言 い 替 えると イベントが 発 生 しようとしている( Should または Will )か すでに 発 生 したところである ( Did または Has )かを 表 す 助 動 詞 です このように 時 制 を 示 すことにより 戻 り 値 を 期 待 す るメッセージとそれ 以 外 を 分 類 できます リスト 3-1に 戻 り 値 を 期 待 するAppKitのデリゲートメソッ ドをいくつか 示 します リスト 3-1 戻 り 値 があるデリゲートメソッドの 例 - (BOOL)application:(NSApplication *)sender openfile:(nsstring *)filename; // NSApplication 24

25 デリゲートとデータソース デリゲートメッセージの 形 式 - (BOOL)application:(UIApplication *)application handleopenurl:(nsurl *)url; // UIApplicationDelegate - (UITableRowIndexSet *)tableview:(nstableview *)tableview willselectrows:(uitablerowindexset *)selection; // UITableViewDelegate - (NSRect)windowWillUseStandardFrame:(NSWindow *)window defaultframe:(nsrect)newframe; // NSWindow デリゲートは 上 記 のメソッドを 実 装 することにより 発 生 しようとしているイベントをブロックす る( 第 1 第 2のメソッドでNOを 返 す) あるいは 示 された 値 ( 第 3のメソッドにおけるインデックス 群 第 4のメソッドにおける 枠 の 矩 形 )を 変 更 することができます さらに 発 生 しようとしている イベントを 遅 延 させることも 可 能 です たとえば デリゲートにapplicationShouldTerminate:メ ソッドを 実 装 し NSTerminateLaterを 返 すことにより アプリケーションの 停 止 を 先 に 延 ばすこと ができます 戻 り 値 を 期 待 しない( 戻 り 値 型 がvoid)メッセージにより 起 動 されるデリゲートメソッドもありま す このメッセージは 純 粋 に 情 報 を 提 供 するためのものであり メッセージ 名 には 多 くの 場 合 Did や Will など イベントがすでに 発 生 した あるいは 発 生 しようとしていることを 表 す 字 句 が 含 ま れています リスト 3-2にこの 種 のデリゲートメソッドの 例 を 示 します リスト 3-2 voidを 返 すデリゲートメソッドの 例 - (void) tableview:(nstableview*)tableview mousedowninheaderoftablecolumn:(nstablecolumn *)tablecolumn; // NSTableView - (void)windowdidmove:(nsnotification *)notification; // NSWindow - (void)application:(uiapplication *)application willchangestatusbarframe:(cgrect)newstatusbarframe; // UIApplication - (void)applicationwillbecomeactive:(nsnotification *)notification; // NSApplication ここに 挙 げたメソッド 群 について 注 意 するべき 点 が2つあります まず ( 第 3のメソッドのよう に) Will という 助 動 詞 がついていても 戻 り 値 が 期 待 されているとは 限 らない ということです この 場 合 イベントは 今 まさに 起 こるところであってブロックできませんが デリゲートにはイベン トを 処 理 するために 準 備 する 機 会 が 与 えられます もうひとつは リスト 3-2に 挙 げた 第 2と 第 4のメソッドに 関 するものです メソッドの 唯 一 の 引 数 が NSNotificationオブジェクトであり したがってこのメソッドは ある 種 の 通 知 をポストした 結 果 として 起 動 されます たとえばwindowDidMove:メソッドは NSWindowの 通 知 NSWindowDidMoveNotificationに 対 応 します AppKitにおいては 通 知 とデリゲートメッセージと 25

26 デリゲートとデータソース デリゲートとアプリケーションフレームワーク の 関 係 を 理 解 することが 大 切 です デリゲートオブジェクトは 自 動 的 にそのデリゲートを 自 身 がポ ストする 通 知 すべてのオブザーバとします デリゲートはすべて この 通 知 を 取 得 するための 対 応 するメソッドを 実 装 しなければなりません カスタムクラスのインスタンスをAppKitオブジェクトのデリゲートにするためには Interface Builder 上 で このインスタンスをdelegateというアウトレットまたはプロパティに 接 続 するだけで 充 分 で す デリゲートオブジェクトのsetDelegate:メソッドまたはdelegateプロパティを 使 って 同 じ 設 定 をプログラムで 行 うことも 可 能 です できるだけ 早 期 に たとえばawakeFromNibや applicationdidfinishlaunching:メソッドの 中 で 設 定 します デリゲートとアプリケーションフレームワーク Cocoa / Cocoa Touchアプリケーションのデリゲートオブジェクトは 多 くの 場 合 UIApplication NSWindow NSTableViewなどのレスポンダオブジェクトです デリゲートオブジェクト 自 身 は 一 般 に アプリケーションのある 部 分 を 制 御 するオブジェクト(すなわち 調 整 型 コントローラオブジェク ト) しかも 多 くの 場 合 はカスタムオブジェクトです(もっとも 常 にそうとは 限 りません) 次 の AppKitクラスにはデリゲートが 定 義 されています NSApplication NSBrowser NSControl NSDrawer NSFontManager NSFontPanel NSMatrix NSOutlineView NSSplitView NSTableView NSTabView NSText NSTextField NSTextView NSWindow 26

27 デリゲートとデータソース デリゲートとアプリケーションフレームワーク UIKitフレームワークでもデリゲートは 多 用 されており いずれも 公 式 プロトコルで 実 装 しています アプリケーションデリゲートは ios 用 アプリケーションにおいては 非 常 に 重 要 です アプリケーショ ンの 起 動 や 停 止 メモリ 不 足 など アプリケーションオブジェクトからのさまざまなメッセージに 応 答 しなければならないからです アプリケーションデリゲートは UIApplicationDelegateプロト コルに 従 わなければなりません デリゲートオブジェクトはデリゲートを リテイン(retain 保 持 ) はしません(するべきではあり ません) しかし デリゲートオブジェクトのクライアント( 通 常 はアプリケーション)は デリ ゲートメッセージをデリゲートが 受 信 できるようにする 責 任 を 負 います そのためには デリゲート をメモリマネージドコードにリテインする 必 要 があるかも 知 れません この 点 に 注 意 する 必 要 がある ことは データソース 通 知 オブザーバ アクションメッセージのターゲットについても 同 様 です なお ガベージコレクション 機 能 が 組 み 込 まれた 環 境 では リテインサイクル( 循 環 参 照 )の 問 題 が 起 こらないので デリゲートへの 参 照 は 強 い 参 照 であることに 注 意 してください AppKitのクラスには モーダルデリゲートという さらに 制 限 された 種 類 のデリゲートを 持 つものも あります 該 当 するクラス(たとえばNSOpenPanel)のオブジェクトは モーダルダイアログを 開 き OK ボタンをユーザがクリックしたとき 指 定 されたデリゲートのハンドラメソッドを 起 動 す るようになっています モーダルデリゲートはモーダルダイアログの 操 作 中 のみ 有 効 です フレームワーククラスのデリゲートになること デリゲートを 実 装 したフレームワーククラスやその 他 のクラスには delegateプロパティとプロト コル( 通 常 は 公 式 プロトコル)が 宣 言 されています プロトコルには デリゲートに 実 装 するべきメ ソッド( 必 須 省 略 可 とも)が 示 されています フレームワークオブジェクトのデリゲートとして 機 能 するクラスのインスタンスには 次 の 機 能 が 必 要 です オブジェクトを(delegateプロパティに 代 入 して)デリゲートとして 設 定 する プログラムで 実 行 しても Interface Builder 上 で 設 定 しても 構 いません プロトコルが 公 式 のものであれば クラスがこれに 準 拠 している 旨 をクラス 定 義 に 宣 言 する た とえば 次 のように 宣 言 MyControllerClass : UIViewController <UIAlertViewDelegate> { プロトコルの 必 須 メソッドをすべて 実 装 し 省 略 可 のメソッドも 必 要 に 応 じて 実 装 する delegateプロパティに 基 づくオブジェクトの 検 索 デリゲートにはほかの 用 途 もあります たとえば 同 じプログラム 中 で 連 携 する2つのコントローラ が デリゲートを 介 して 互 いに 相 手 を 見 つけ 通 信 し 合 えるようになります たとえば アプリケー ション 全 体 を 制 御 するオブジェクトは そのインスペクタウインドウ(その 時 点 におけるキーウイン ドウと 想 定 )のコントローラを 次 のようなコードで 検 索 できます 27

28 デリゲートとデータソース データソース id wincontroller = [[NSApp keywindow] delegate]; 独 自 に 実 装 するコードでも 同 様 に アプリケーションコントローラオブジェクト( 定 義 により グ ローバルアプリケーションインスタンスのデリゲート)を 次 のようなコードで 検 索 できます id appcontroller = [NSApp delegate]; データソース データソース もデリゲートに 似 ていますが ユーザインターフェイスではなく データの 制 御 を 委 譲 される 点 が 異 なります データソースは NSViewやUIViewオブジェクト(テーブルビュー ア ウトラインビューなど)がリテインするアウトレットで ここから 取 得 したデータを 各 行 に 埋 めて 表 示 するようになっています ビューのデータソースは 通 常 デリゲートとして 振 る 舞 うオブジェクト と 同 じものですが そうでなくても 構 いません デリゲートと 同 様 データソースにも 非 公 式 プロト コルのメソッドをいくつか 実 装 して 必 要 なデータをビューに 供 給 する 必 要 があります また より 高 度 な 実 装 では ビュー 上 でユーザが 直 接 編 集 するデータの 処 理 メソッドも 実 装 します データソースもデリゲートと 同 様 データを 要 求 するオブジェクトからのメッセージを 受 け 取 るため に 必 要 なオブジェクトです データソースを 利 用 するアプリケーションは その 永 続 性 を 保 証 し 必 要 ならばメモリマネージドコードにリテインしなければなりません データソースは ユーザインターフェイスオブジェクトに 渡 すオブジェクトの 永 続 性 に 関 して 責 任 を 負 います すなわち 当 該 オブジェクトのメモリ 管 理 に 責 任 を 負 う ということです これに 対 し アウトラインビュー テーブルビューなどのビューオブジェクトは データソースから 取 得 したデー タを 実 際 に 使 っている 間 保 持 しています とは 言 え 長 い 期 間 にわたってデータを 使 うわけではあ りません 表 示 に 必 要 な 間 しか 保 持 していないのが 普 通 です カスタムクラスにデリゲートを 実 装 する 手 順 カスタムクラスにデリゲートを 実 装 する 手 順 は 次 の 通 りです クラスのヘッダファイルに デリゲートのアクセサメソッドを 宣 言 する - (id)delegate; - (void)setdelegate:(id)newdelegate; 28

29 デリゲートとデータソース カスタムクラスにデリゲートを 実 装 する 手 順 アクセサメソッドを 実 装 する メモリマネージドプログラムでは リテインサイクルを 避 けるた め セッタメソッドでデリゲートを 保 持 し あるいはコピーすることはできません - (id)delegate { return delegate; - (void)setdelegate:(id)newdelegate { delegate = newdelegate; ガベージコレクション 機 能 が 組 み 込 まれた リテインサイクルの 問 題 が 生 じない 環 境 では デリ ゲートを( weak 型 修 飾 子 を 使 って) 弱 い 参 照 にすることは 避 けなければなりません リテイン サイクルについては Advanced Memory Management Programming Guide を 参 照 してください また ガベージコレクションにおける 弱 い 参 照 については Garbage Collection Programming Guide の Garbage Collection for Cocoa Essentials を 参 照 してください デリゲートに 対 する 公 式 または 非 公 式 のプロトコル(プログラムインターフェイスを 含 む)を 宣 言 する 非 公 式 のプロトコルは NSObjectクラスのカテゴリに 記 述 します デリゲートに 対 する 公 式 プロトコルを 宣 言 する 場 合 省 略 可 記 述 子 を 使 って 印 をつけてく ださい デリゲートメソッドの 名 前 については デリゲートメッセージの 形 式 (24 ページ)を 参 照 し てください デリゲートメソッドを 起 動 する 前 に デリゲートに 当 該 メソッドが 実 装 されているかどうか respondstoselector:メッセージを 送 信 することにより 確 認 する - (void)somemethod { ) { if ( [delegate respondstoselector:@selector(operationshouldproceed)] if ( [delegate operationshouldproceed] ) { // 適 切 な 処 理 を 実 行 この 確 認 が 必 要 なのは 公 式 プロトコルの 省 略 可 のメソッド または 非 公 式 プロトコルのメソッ ドについてです 29

30 イントロスペクション イントロスペクションはオブジェクト 指 向 言 語 / 環 境 で 利 用 できる 強 力 な 機 能 であり Objective-Cや Cocoaにおいてもその 例 外 ではありません これは 実 行 時 に オブジェクト 自 身 の 内 部 の 詳 細 を 調 べる 機 能 のことです 具 体 的 には 継 承 ツリーにおける 当 該 オブジェクトの 位 置 あるプロトコルに 準 拠 しているか 否 か あるメッセージに 応 答 できるか 否 か などを 調 べることができます NSObject プロトコルおよびクラスには 実 行 時 にオブジェクトの 特 性 を 調 べるための さまざまなイントロス ペクションメソッドが 定 義 されています イントロスペクションは うまく 使 えば オブジェクト 指 向 プログラムがより 効 率 的 かつ 頑 健 になり ます メッセージのディスパッチ 処 理 失 敗 オブジェクトの 等 価 性 に 関 する 想 定 の 誤 り その 他 の 問 題 を 回 避 するために 役 立 ちます 以 下 の 各 節 では NSObjectのイントロスペクションメソッドを コード 中 で 効 果 的 に 利 用 する 方 法 を 解 説 します 継 承 関 係 の 評 価 オブジェクトが 属 するクラスが 分 かれば 当 該 オブジェクトについて かなりの 情 報 が 得 られたこと になります その 能 力 や 属 性 応 答 できるメッセージなどが 分 かるのです オブジェクトが 属 するク ラスの 細 かい 仕 様 が 分 からない 場 合 であっても 誤 って 不 適 切 なメッセージを 送 信 すことは 避 けるこ とができます NSObjectプロトコルには オブジェクトがクラス 階 層 上 のどの 位 置 にあるか を 判 断 するためのメ ソッドがいくつか 宣 言 されています 各 メソッドは それぞれ 異 なる 粒 度 で 情 報 を 返 すようになって います たとえばインスタンスメソッドclassおよびsuperclassは レシーバが 属 するクラスやスー パークラスを 表 す Classオブジェクトを 返 します このメソッドを 活 用 するためには Classオブ ジェクトどうしを 比 較 する 手 段 が 必 要 です リスト 4-1に 単 純 な( 一 見 つまらない) 使 い 方 の 例 を 示 します リスト 4-1 classメソッド superclassメソッドの 使 い 方 //... while ( id anobject = [objectenumerator nextobject] ) { if ( [self class] == [anobject superclass] ) { // 適 切 な 処 理 を 実 行... 30

31 イントロスペクション メソッドの 実 装 とプロトコルへの 準 拠 注 意 : classメソッドやsuperclassメソッドは クラスメッセージの 適 切 なレシーバを 取 得 するために 使 うこともあります より 一 般 に あるオブジェクトが 属 するクラスを 継 承 関 係 を 含 めて 確 認 したい 場 合 は iskindofclass:メッセージ あるいはisMemberOfClass:メッセージを 使 います iskindofclass: メッセージは レシーバがあるクラス またはこれを 継 承 する 子 孫 クラスの インスタンスであるか 否 かを 返 します 一 方 ismemberofclass:メッセージは レシーバが 特 定 のクラスのインスタンス であるか 否 かを 返 します 一 般 にisKindOfClass:メソッドの 方 が 役 に 立 つでしょう というのも 当 該 オブジェクトに 送 信 できるメッセージを 一 括 して 調 べることができるからです リスト 4-2の コード 断 片 を 考 えてみましょう リスト 4-2 iskindofclass:の 使 い 方 if ([item iskindofclass:[nsdata class]]) { const unsigned char *bytes = [item bytes]; unsigned int length = [item length]; //... オブジェクトitem がNSDataクラスから 継 承 している 旨 が 分 かれば NSDataのbytesメッセージ lengthメッセージを 送 信 できることになります iskindofclass:とismemberofclass:の 違 いが 現 れるのは itemがnsmutabledataのインスタンスである 場 合 です iskindofclass:を ismemberofclass:で 置 き 換 えたとすれば 条 件 が 真 になった 場 合 のブロックは 決 して 実 行 されませ ん item はNSDataではなく そのサブクラスであるNSMutableDataのインスタンスだからです メソッドの 実 装 とプロトコルへの 準 拠 NSObjectにはさらに2つ より 強 力 なイントロスペクションメソッド respondstoselector:およ びconformsToProtocol:があります それぞれ オブジェクトにあるメソッドが 実 装 されているか ある 公 式 プロトコルに 準 拠 しているか(すなわち プロトコルを 採 用 し そのメソッドをすべて 実 装 しているか)を 調 べるために 使 います どちらも 似 たような 状 況 で 必 要 になるでしょう どのクラスに 属 するか 確 定 しないオブジェクトにつ いて ある 一 連 のメッセージに 適 切 に 応 答 できるか 否 か 実 際 に 送 信 する 前 に 判 定 できます 事 前 に この 検 査 を 行 うことにより セレクタが 認 識 できないために 実 行 時 例 外 が 発 生 するのを 避 けることが 31

32 イントロスペクション オブジェクトの 比 較 できます AppKitフレームワークには デリゲートの 基 盤 である 非 公 式 プロトコルが デリゲートに デリゲートメソッドが 実 装 されているか (respondstoselector:を 使 って) 当 該 メソッドを 起 動 する 前 に 検 査 する という 方 法 で 実 装 されています リスト 4-3に コード 中 でrespondsToSelector:メソッドを 使 う 例 を 示 します リスト 4-3 respondstoselector:の 使 用 例 - (void)docommandbyselector:(sel)aselector { if ([self respondstoselector:aselector]) { [self performselector:aselector withobject:nil]; else { [_client docommandbyselector:aselector]; リスト 4-4に コード 中 でconformsToProtocol:メソッドを 使 う 例 を 示 します リスト 4-4 conformstoprotocol:の 使 用 例 //... if (!([((id)testobject) conformstoprotocol:@protocol(nsmenuitem)])) { NSLog(@"Custom MenuItem, '%@', not loaded; it must conform to the 'NSMenuItem' protocol.\n", [testobject class]); [testobject release]; testobject = nil; オブジェクトの 比 較 hashメソッドやisequal:メソッドは 厳 密 にはイントロスペクションメソッドではありませんが 実 質 的 に 同 じような 役 割 を 果 たします オブジェクトを 識 別 しあるいは 比 較 するために 不 可 欠 の 実 行 時 ツールと 言 えるでしょう しかし (イントロスペクションのように)オブジェクトに 関 する 情 報 を 実 行 時 に 調 べるのではなく クラス 特 有 の 比 較 ロジックを 利 用 しています 32

33 イントロスペクション オブジェクトの 比 較 hashもisequal:も NSObjectプロトコルに 宣 言 されており 相 互 に 関 連 するメソッドです hashメ ソッドは オブジェクトをハッシュテーブルに 登 録 する 際 の テーブルアドレス(インデックス)と して 使 う 整 数 を 返 すよう 実 装 しなければなりません 2つのオブジェクトが(isEqual:メソッドで 判 定 した 結 果 ) 等 しければ ハッシュ 値 も 等 しくならなければなりません オブジェクトをNSSetなど のコレクションオブジェクトに 登 録 する 場 合 hashを 定 義 し 2つのオブジェクトが 等 しければ 同 じ ハッシュ 値 を 返 す という 不 変 表 明 を 満 たすようにする 必 要 があります NSObjectにおけるisEqual: のデフォルト 実 装 では 単 にポインタ 値 を 比 較 しています isequal:メソッドの 使 い 方 は 明 らかでしょう レシーバと 引 数 として 渡 されたオブジェクトを 比 較 します オブジェクトに 対 する 処 理 を 実 行 時 に 判 断 するため 比 較 が 必 要 になることは 少 なくあり ません リスト 4-5のように あるアクション(この 例 では 修 正 した 環 境 設 定 の 保 存 )を 実 行 するか どうか isequal:を 使 って 判 断 することができます リスト 4-5 isequal:の 使 用 例 - (void)savedefaults { NSDictionary *prefs = [self preferences]; if (![origvalues isequal:prefs]) [Preferences savepreferencestodefaults:prefs]; サブクラスを 作 成 する 際 には isequal:をオーバーライドし 等 価 性 の 検 査 項 目 を 追 加 する 必 要 が あるかも 知 れません 2つのインスタンスが 等 しいと 言 うためには サブクラスで 追 加 した 属 性 の 値 も 等 しくなければならない ということがあるからです たとえば NSObjectのサブクラスである MyWidgetでは nameおよびdataというインスタンス 変 数 を 宣 言 しているとしましょう MyWidgetの 2つのインスタンスが 等 しいと 言 うためには この2つのインスタンス 変 数 の 値 が 等 しくなければなり ません リスト 4-6に MyWidgetクラスのisEqual:の 実 装 例 を 示 します リスト 4-6 isequal:のオーバーライド - (BOOL)isEqual:(id)other { if (other == self) return YES; if (!other![other iskindofclass:[self class]]) return NO; return [self isequaltowidget:other]; - (BOOL)isEqualToWidget:(MyWidget *)awidget { 33

34 イントロスペクション オブジェクトの 比 較 if (self == awidget) return YES; if (![(id)[self name] isequal:[awidget name]]) return NO; if (![[self data] isequaltodata:[awidget data]]) return NO; return YES; このisEqual:メソッドは まずポインタを 比 較 し 次 にクラスの 等 価 性 を 調 べ 最 後 にオブジェク トの 比 較 メソッドを 起 動 しています この 比 較 メソッドの 名 前 に 比 較 相 手 のクラス 名 が 含 まれてい ることに 注 意 してください Cocoaの 比 較 メソッドではこのように まず 渡 されたオブジェクトの 型 を 検 査 することが 共 通 の 規 約 になっています たとえば NSStringクラスのisEqualToString:メ ソッド NSTimeZoneクラスのisEqualToTimeZone:メソッドがこの 規 約 に 従 っています クラスに 特 有 の 比 較 メソッド(この 例 ではisEqualToWidget:)が nameとdataが 等 しいかどうかを 検 査 しま す Cocoaフレームワークには isequaltotype : という 形 の 名 前 のメソッドが 多 数 ありますが いずれ もnilを 有 効 な 引 数 として 認 めず nilを 受 け 取 った 場 合 は 例 外 を 投 げるように 実 装 されています ただし 後 方 互 換 性 を 維 持 するため isequal:メソッドはnilを 受 け 付 け NOを 返 すようになってい ます 34

35 オブジェクトの 割 り 当 て オブジェクトを 割 り 当 てる 際 に 何 が 起 こっているか その 一 部 は 割 り 当 て という 言 葉 からおおよ そ 見 当 がつくでしょう Cocoaはアプリケーション 仮 想 メモリ 領 域 から オブジェクトを 格 納 するた めに 充 分 な 量 のメモリを 割 り 当 てます この 容 量 を 計 算 するためには 該 当 するクラスに 定 義 された インスタンス 変 数 ( 型 や 順 序 を 含 む) 考 慮 しなければなりません オブジェクトの 割 り 当 ては そのクラスにallocメッセージまたはallocWithZone:メッセージを 送 っ て 行 います 戻 り 値 は 当 該 クラスの 生 の ( 初 期 化 していない)インスタンスです allocメソッ ドは アプリケーションのデフォルトゾーンからメモリを 確 保 します ゾーンとは ページ 境 界 で 区 切 られたメモリ 領 域 で アプリケーションは 関 連 するオブジェクトやデータをこの 中 に 保 持 します ゾーンについて 詳 しくは Advanced Memory Management Programming Guide を 参 照 してくださ い 割 り 当 てメッセージは メモリを 割 り 当 てるほかにも 重 要 な 処 理 をしています オブジェクトのリテインカウントを1と 設 定 する オブジェクトのisaインスタンス 変 数 が 当 該 オブジェクトが 属 するクラス(クラス 定 義 に 基 づ き 生 成 される 独 立 した 実 行 時 オブジェクト)を 指 すよう 初 期 化 する ほかのインスタンス 変 数 を0(またはそれぞれの 型 の0に 相 当 する 値 nil NULL 0.0など)に 初 期 化 する isaインスタンス 変 数 はNSObjectから 継 承 したものであり Cocoaオブジェクトすべてに 共 通 です 属 するクラスをisaに 設 定 した 後 オブジェクトは 継 承 階 層 の 実 行 時 ビュー およびプログラムを 構 成 するオブジェクト(クラスおよびインスタンス)のネットワークに 組 み 込 まれます その 結 果 オブジェクトは 実 行 時 に 必 要 な 情 報 をすべて 調 べられるようになります 継 承 階 層 におけるほかの オブジェクトの 位 置 ほかのオブジェクトが 準 拠 するプロトコル メッセージに 応 答 して 実 行 できる メソッドが 実 装 されている 場 所 などです 以 上 のように 割 り 当 て では 単 にオブジェクト 用 のメモリ 領 域 を 割 り 当 てるだけでなく 小 さい けれどもどのオブジェクトにとっても 非 常 に 重 要 な2つの 属 性 すなわちisaインスタンス 変 数 とリテ インカウントを 初 期 化 します さらに それ 以 外 のインスタンス 変 数 を0にします しかし 結 果 と して 得 られるオブジェクトは まだそのままでは 使 えません initなどの 初 期 化 メソッドで それぞ れの 特 性 に 合 わせて 初 期 化 することにより 正 常 に 機 能 するオブジェクトが 得 られるのです 35

36 オブジェクトの 初 期 化 初 期 化 の 処 理 では オブジェクトのインスタンス 変 数 を 合 理 的 かつ 有 用 な 初 期 値 に 設 定 します ま た オブジェクトが 必 要 とするほかのグローバルリソースを 割 り 当 て 準 備 し 必 要 に 応 じてファイ ルなどの 外 部 リソースから 読 み 込 む といった 処 理 も 可 能 です インスタンス 変 数 を 宣 言 しているオ ブジェクトには 初 期 化 メソッドを 実 装 しなければなりません(すべてデフォルト 値 すなわち0で 構 わない 場 合 を 除 く) イニシャライザ(initializer)が 実 装 されていなければ Cocoaは 代 わりに 最 も 近 い 祖 先 のイニシャライザを 呼 び 出 します イニシャライザの 形 式 NSObjectにはイニシャライザのプロトタイプとしてinitが 宣 言 されています これはインスタンス メソッドで 戻 り 値 はid 型 のオブジェクトです 初 期 化 に 際 して 何 らかのデータを 渡 す 必 要 がないの であれば initをオーバーライドするとよいでしょう しかし オブジェクトを 合 理 的 な 初 期 状 態 に するために 外 部 データを 必 要 とすることも 少 なくありません たとえばAccountクラスを 考 えてみ ましょう Accountオブジェクトを 適 切 に 初 期 化 するためには 一 意 的 な 口 座 番 号 が 必 要 であり こ れをイニシャライザに 渡 さなければなりません このようにイニシャライザは 引 数 をいくつか 取 る ことがあります 初 期 化 メソッドに 対 する 要 件 は その 名 前 が init で 始 まることだけです(その ため 一 般 にイニシャライザを 表 す 場 合 init... と 表 記 する 規 約 になっています) 注 意 : サブクラスに 引 数 を 取 るイニシャライザを 実 装 する 代 わりに 引 数 なしのinitメ ソッドのみ 実 装 しておき 初 期 化 後 に 設 定 アクセサメソッドで 適 切 な 初 期 状 態 にする という 方 法 もあります(アクセサメソッドは インスタンス 変 数 の 値 を 設 定 / 取 得 する 手 段 であり これによりオブジェクトデータのカプセル 化 を 実 現 します) あるいは サブクラ スにプロパティを 定 義 し そのアクセス 構 文 が 使 えるようにしている 場 合 は 初 期 化 後 にプ ロパティ 値 を 設 定 する という 方 法 も 考 えられます Cocoaには 引 数 つきのイニシャライザの 例 が 多 数 あります その 例 をいくつか 示 します( 括 弧 内 にク ラスを 注 記 ) - (id)initwitharray:(nsarray *)array;(nssetから) - (id)initwithtimeinterval:(nstimeinterval)secstobeadded sincedate:(nsdate *)anotherdate;(nsdateから) 36

37 オブジェクトの 初 期 化 イニシャライザに 関 する 問 題 - (id)initwithcontentrect:(nsrect)contentrect stylemask:(unsigned int)astyle backing:(nsbackingstoretype)bufferingtype defer:(bool)flag;(nswindowから) - (id)initwithframe:(nsrect)framerect;(nscontrolおよびnsviewから) 以 上 のイニシャライザは いずれも 名 前 が init で 始 まるインスタンスメソッドで 動 的 な 型 であ るid 型 のオブジェクトを 返 します また 複 数 の 引 数 を 取 る 場 合 は Cocoaの 規 約 に 従 い 最 も 重 要 な 第 1 引 数 の 前 に WithType : や FromSource : という 形 の 字 句 を 置 いています イニシャライザに 関 する 問 題 init... メソッドは そのシグニチャに 従 い オブジェクトを 戻 り 値 とする 必 要 があります し かしそのオブジェクトは 直 近 に 割 り 当 てられたもの(init...メッセージのレシーバ)でなくても 構 いません 言 い 替 えると イニシャライザの 戻 り 値 であるオブジェクトが このとき 初 期 化 された ものであるとは 限 らないのです このように 今 まさに 割 り 当 てたオブジェクト 以 外 のものを 返 す という 状 況 は2 通 り 考 えられます 1つめはさらに 関 連 する2つの 状 況 に 分 けられます オブジェクトがシングルトンインスタンスでな ければならない 場 合 と オブジェクトのある 属 性 値 が 一 意 でなければならない 場 合 です NSWorkspace などいくつかのCocoaクラスは プログラム 全 体 で1つのインスタンスしか 存 在 できません このよう な 場 合 インスタンスが 高 々1つであることを 保 証 し(イニシャライザでも 行 えるが クラスファク トリメソッドで 実 装 する 方 が 望 ましい) 新 たにインスタンスを 生 成 するよう 要 求 されても この 唯 一 のインスタンスを 返 すようにする 必 要 があります 同 じような 状 況 は オブジェクトのある 属 性 値 が 一 意 でなければならない 場 合 にも 当 てはまります 先 に 例 を 挙 げたAccountクラスを 考 えてみましょう 口 座 には 一 意 的 な 口 座 番 号 が 必 要 です このク ラスのイニシャライザ たとえばinitWithAccountID:に 引 数 として 渡 された 口 座 番 号 が ほかのオ ブジェクトに 対 して 設 定 済 みのものであった 場 合 次 の2つの 処 理 が 必 要 です いったん 割 り 当 てたオブジェクトを(メモリマネージドコードで) 解 放 する 同 じ 口 座 番 号 で 初 期 化 済 みのAccountオブジェクトを 返 す これにより 口 座 番 号 の 一 意 性 を 維 持 しつつ 指 定 された 口 座 番 号 のAccountインスタンスを 返 すこ とができます 2つめの 状 況 を 考 えてみましょう init... メソッドが 要 求 された 通 りの 初 期 化 を 行 えない 場 合 です たとえばinitFromFile:メソッドは 引 数 として 指 定 されたパスのファイルを 読 み 込 み それ に 従 ってオブジェクトを 初 期 化 することになっています しかし 該 当 するファイルがなかった 場 合 初 期 化 はできません 同 様 の 問 題 は たとえばイニシャライザinitWithArray:に NSArrayで はなくNSDictionaryのオブジェクトが 渡 された 場 合 にも 起 こります init... メソッドがオブ ジェクトを 初 期 化 できない 場 合 次 のような 処 理 が 必 要 です 37

38 オブジェクトの 初 期 化 イニシャライザに 関 する 問 題 いったん 割 り 当 てたオブジェクトを(メモリマネージドコードで) 解 放 する nilを 返 す イニシャライザの 戻 り 値 がnilであれば 要 求 されたオブジェクトが 生 成 できなかったことを 表 しま す 一 般 に オブジェクトを 生 成 したときは 戻 り 値 がnilでないかどうか 確 認 してから 次 の 処 理 に 進 むようにしてください id anobject = [[MyClass alloc] init]; if (anobject) { [anobject dosomething]; // 続 きの 処 理... else { // エラー 処 理 init...メソッドは nil あるいは 明 示 的 に 割 り 当 てた 以 外 のオブジェクトを 返 すこともあるので イニシャライザではなくallocやallocWithZone:から 返 されたインスタンスを 使 うのは 危 険 です たとえば 次 のコードを 考 えてみましょう id myobject = [MyClass alloc]; [myobject init]; [myobject dosomething]; この 例 で initメソッドの 戻 り 値 は nil あるいはほかのオブジェクトに 置 き 換 えられている 可 能 性 があります nilにメッセージを 送 っても 例 外 は 発 生 しないので 表 面 上 は 何 も 起 こらないかも 知 れません(デバッグには 苦 労 しそうですが) しかし 割 り 当 てただけの 生 の インスタンスでは なく 初 期 化 済 みのインスタンスを 常 に 使 うようにするべきです したがって 割 り 当 てメッセージ (alloc)を 初 期 化 メッセージ(init) 内 に 入 れ 子 にし イニシャライザから 返 されたオブジェクトを テストした 上 で 次 の 処 理 に 移 るようにしてください id myobject = [[MyClass alloc] init]; if ( myobject ) { [myobject dosomething]; else { // エラーからの 回 復... 38

39 オブジェクトの 初 期 化 イニシャライザの 実 装 初 期 化 済 みのオブジェクトを 重 ねて 初 期 化 することはできません 再 初 期 化 を 試 みると 多 くの 場 合 当 該 オブジェクトが 属 するフレームワーククラスから 例 外 が 発 生 します たとえば 次 の 例 では 2 回 目 の 初 期 化 の 際 にNSInvalidArgumentExceptionが 発 生 します NSString *astr = [[NSString alloc] initwithstring:@"foo"]; astr = [astr initwithstring:@"bar"]; イニシャライザの 実 装 init...メソッドを 実 装 する 際 には いくつかある 重 要 な 規 約 に 従 わなければなりません クラスの 唯 一 のイニシャライザである 場 合 のほか 複 数 ある 場 合 の 指 定 イニシャライザ(designated initializer 複 数 のイニシャライザ 指 定 イニシャライザ (42 ページ)を 参 照 )についても 同 じです スーパークラス(super)のイニシャライザを 実 装 の 先 頭 で 起 動 してください スーパークラスのイニシャライザから 返 されたオブジェクトを 検 査 します nilであれば 初 期 化 を 続 行 できません レシーバにnilを 返 してください オブジェクトの 参 照 であるインスタンス 変 数 を 初 期 化 する 際 には 必 要 に 応 じ オブジェクトの コピーを(メモリマネージドコードで)リテインしてください インスタンス 変 数 に 初 期 化 を 設 定 した 後 次 の 場 合 を 除 き selfを 返 します 代 替 のオブジェクトを 返 す 必 要 がある 場 合 この 場 合 はまず 直 近 に 割 り 当 てたオブジェク トを(メモリマネージドコードで) 解 放 します 問 題 が 発 生 して 初 期 化 を 続 行 できなかった 場 合 この 場 合 はnilを 返 します - (id)initwithaccountid:(nsstring *)identifier { if ( self = [super init] ) { Account *ac = [accountdictionary objectforkey:identifier]; if (ac) { // 同 じ 口 座 番 号 のオブジェクトがすでに 存 在 する [self release]; return [ac retain]; if (identifier) { accountid = [identifier copy]; // accountidはインスタンス 変 数 [accountdictionary setobject:self forkey:identifier]; return self; else { 39

40 オブジェクトの 初 期 化 イニシャライザの 実 装 [self release]; return nil; else return nil; 注 意 : 簡 単 にするため この 例 では 引 数 がnilのとき 単 にnilを 返 していますが Cocoaの 場 合 例 外 を 投 げる 方 が 優 れています オブジェクトのインスタンス 変 数 を すべて 明 示 的 に 初 期 化 しなくても 構 いません 正 常 に 機 能 する ために 必 要 な 範 囲 でよいのです 割 り 当 ての 際 に0で 初 期 化 されるため それだけで 充 分 なことも 少 なくありません メモリ 管 理 のために 必 要 なので インスタンス 変 数 は 確 実 にリテインまたはコピー してください スーパークラスのイニシャライザを 実 装 の 先 頭 で 起 動 する という 要 件 は 重 要 です オブジェクトの カプセル 化 は 当 該 クラスで 定 義 されたインスタンス 変 数 だけでなく 祖 先 クラスすべてのインスタ ンス 変 数 が 対 象 なのでした superのイニシャライザをまず 起 動 することにより 継 承 チェーンをた どって 祖 先 クラスで 定 義 されているインスタンス 変 数 を 確 実 に 初 期 化 できます すぐ 上 のスーパー クラスは そのイニシャライザの 中 でさらにそのスーパークラスのイニシャライザを 起 動 します こ れがさらに スーパークラスのinit...メソッドを 起 動 する という 具 合 に 順 次 さかのぼって 行 くの 40

41 オブジェクトの 初 期 化 イニシャライザの 実 装 です( 図 6-1を 参 照 ) 初 期 化 の 順 序 も 重 要 です サブクラス 側 の 初 期 化 を 後 で 行 うことにより スー パークラスで 定 義 されたインスタンス 変 数 が 合 理 的 な 値 に 初 期 化 されていることを 前 提 にして 処 理 できるのです 図 6-1 継 承 チェーンをさかのぼって 初 期 化 Class A Instance variables: NSString *name: sets - (id)initwithname: super Class B Instance variables: NSString *name: NSDate *dob: inherits from self sets - (id)initwithname:birthday: super Class C Instance variables: NSString *name: NSDate *dob: NSNumber *ssn: inherits from sets - (id)initwithname:birthday:ssn: 継 承 したイニシャライザは サブクラスを 作 成 する 際 にも 問 題 になります 場 合 によっては スー パークラスのinit...メソッドだけで サブクラスのインスタンスの 初 期 化 が 済 んでしまうこともあ ります しかしこれで 足 りることは 少 ないので スーパークラスのイニシャライザはオーバーライド するべきです そうしないと スーパークラスの 実 装 が 起 動 されてしまいますが スーパークラス 側 ではサブクラスのことを 意 識 せずに 処 理 するので インスタンスが 正 しく 初 期 化 されない 恐 れがあり ます 41

42 オブジェクトの 初 期 化 複 数 のイニシャライザ 指 定 イニシャライザ 複 数 のイニシャライザ 指 定 イニシャライザ 同 じクラスに 複 数 のイニシャライザを 定 義 することも 可 能 です 初 期 化 すること 自 体 は 同 じでも 呼 び 出 し 形 式 (シグニチャ)が 異 なるので 呼 び 出 し 側 では 状 況 に 応 じて 使 い 分 けることができます た とえばNSSetクラスにはイニシャライザがいくつかあり 初 期 化 に 用 いるデータの 受 け 取 り 方 ( 引 数 )が 違 っています NSArrayオブジェクトを 受 け 取 るもの 要 素 のリストと 要 素 数 を 受 け 取 るも の 可 変 長 引 数 の 形 で 要 素 を 受 け 取 る( 末 尾 をnilで 示 す)ものなどです - (id)initwitharray:(nsarray *)array; - (id)initwithobjects:(id *)objects count:(unsigned)count; - (id)initwithobjects:(id)firstobj,...; サブクラスによっては 呼 び 出 し 側 の 便 宜 のため 引 数 を 減 らした 簡 易 イニシャライザを 用 意 してい ることがあります 省 略 した 引 数 についてはデフォルト 値 を 設 定 し すべての 引 数 を 明 示 的 に 指 定 す る 完 全 な イニシャライザを 呼 び 出 します 通 常 これは クラスで 最 も 重 要 なイニシャライザ す なわち 指 定 イニシャライザです たとえば Taskというクラスに 次 のような 指 定 イニシャライザが 宣 言 されているとしましょう - (id)initwithtitle:(nsstring *)atitle date:(nsdate *)adate; Taskクラスではほかに 二 次 ( 簡 易 )イニシャライザを 用 意 しているかも 知 れません 省 略 された 引 数 についてはデフォルト 値 を 使 って 指 定 イニシャライザを 起 動 するだけのイニシャライザです 指 定 イニシャライザと 二 次 イニシャライザの 例 を 示 します - (id)initwithtitle:(nsstring *)atitle { return [self initwithtitle:atitle date:[nsdate date]]; - (id)init { return [self initwithtitle:@"task"]; 指 定 イニシャライザはクラスにおいて 重 要 な 役 割 を 担 います 継 承 したインスタンス 変 数 が 適 切 に 初 期 化 されるよう スーパークラスの 指 定 イニシャライザを 呼 び 出 しています また 一 般 にinit... メソッドの 中 で 引 数 が 最 も 多 く 最 も 幅 広 い 初 期 化 処 理 を 行 います 二 次 イニシャライザは selfを レシーバとし 指 定 イニシャライザを 起 動 する 形 で 実 装 します 42

43 オブジェクトの 初 期 化 複 数 のイニシャライザ 指 定 イニシャライザ サブクラスを 定 義 する 際 には スーパークラスの 指 定 イニシャライザがどれであるかを 知 らなければ なりません サブクラス 側 の 指 定 イニシャライザでは superをレシーバとして この 指 定 イニシャ ライザを 起 動 することになります また 継 承 したほかのイニシャライザも 同 様 に 扱 う 必 要 がありま す 簡 易 イニシャライザも 必 要 に 応 じて 定 義 してください クラスのイニシャライザを 設 計 する 際 に は superを 介 し 継 承 階 層 をたどって 指 定 イニシャライザを 連 鎖 させることが 重 要 です それ 以 外 のイニシャライザは selfを 介 して 当 該 クラスの 指 定 イニシャライザに 連 鎖 させます 以 上 の 説 明 は 例 を 見 た 方 が 分 かりやすいでしょう たとえば A B Cという3つのクラスを 考 えま す BはAのサブクラス CはBのサブクラスです 各 サブクラスは 属 性 をインスタンス 変 数 として 追 加 し これを 初 期 化 するinit...メソッド( 指 定 イニシャライザ)を 実 装 しています さらに 二 次 イニシャライザを 定 義 し 継 承 したイニシャライザは 必 要 に 応 じてオーバーライドしています 図 6-2に 3つのクラスのイニシャライザとそれぞれの 関 係 を 示 します 図 6-2 二 次 イニシャライザと 指 定 イニシャライザの 関 係 Class A - (id)init super Class B inherits from - (id)init self - (id)initwithtitle: super Class C inherits from - (id)initwithtitle: self - (id)initwithtitle:date: 各 クラスの 指 定 イニシャライザは 最 も 幅 広 い 初 期 化 処 理 を 行 うイニシャライザであり サブクラス で 追 加 した 属 性 はここで 初 期 化 します 指 定 イニシャライザもやはりinit...メソッドであり super に 対 するメッセージの 形 で スーパークラスの 指 定 イニシャライザを 呼 び 出 します この 例 で クラ スCの 指 定 イニシャライザであるinitWithTitle:date:は そのスーパークラスBの 指 定 イニシャラ 43

44 オブジェクトの 初 期 化 複 数 のイニシャライザ 指 定 イニシャライザ イザであるinitWithTitle:を 呼 び 出 しています これはさらに クラスAのinitメソッドを 呼 び 出 します サブクラスを 定 義 する 際 には スーパークラスの 指 定 イニシャライザがどれであるかを 知 る ことが 重 要 です 指 定 イニシャライザはこのように superへのメッセージという 形 で 継 承 チェーンを 上 にたどります が 二 次 イニシャライザはselfへのメッセージという 形 で 当 該 クラスの 指 定 イニシャライザを 呼 び 出 します 二 次 イニシャライザの 中 には (この 例 のように) 継 承 したイニシャライザをオーバーラ イドしたものもあります クラスCではinitWithTitle:をオーバーライドし デフォルトの 日 付 を 渡 して 指 定 イニシャライザを 呼 び 出 しています 一 方 この 指 定 イニシャライザは クラスBの 指 定 イ ニシャライザ(オーバーライドする 元 のinitWithTitle:)を 呼 び 出 しています 同 じように initwithtitle:メッセージを 送 っても 送 り 先 オブジェクトが 属 するクラスがBかCかによって 実 際 に 起 動 されるメソッドの 実 装 は 異 なります 一 方 クラスCでinitWithTitle:をオーバーライドし ていないとすれば クラスCのインスタンスにメッセージを 送 っても 実 際 に 起 動 されるのはクラス Bの 実 装 です したがってCのインスタンスは 日 付 が 初 期 化 されず 不 完 全 な 状 態 になってしまいま す このように サブクラスを 定 義 する 際 には 継 承 したイニシャライザをすべて 適 切 に 取 り 扱 うこ とが 重 要 なのです 場 合 によっては スーパークラスの 指 定 イニシャライザだけで 充 分 であり サブクラス 側 で 別 に 指 定 イニシャライザを 実 装 する 必 要 がないこともあります また あるクラスの 指 定 イニシャライザが スーパークラスのそれをオーバーライドしたものであることもあります これは サブクラスで 独 自 のインスタンス 変 数 を 追 加 していない(あるいは 追 加 していても 明 示 的 な 初 期 化 が 必 要 ない)けれど も スーパークラスの 指 定 イニシャライザの 処 理 を サブクラス 側 で 補 う 必 要 がある という 状 況 で す 44

45 Model-View-Controllerパターン Model-View-Controller (MVC)は 非 常 に 古 くからあるデザインパターンです Smalltalkが 開 発 され た 時 代 以 降 さまざまな 変 形 が 生 まれてきました アプリケーション 全 体 のアーキテクチャに 関 わ る という 意 味 で 高 レベルのパターンであり アプリケーションの 中 で 担 う 役 割 に 応 じてオブジェク トを 分 類 します さらに 基 本 的 なパターンをいくつか 組 み 合 わせた 複 合 パターンであるとも 言 え ます オブジェクト 指 向 プログラムは MVCデザインパターンに 当 てはめることにより さまざまな 利 点 が 生 まれます このようなプログラムのオブジェクトは 再 利 用 性 に 優 れ インターフェイスもきちん と 定 義 されている 傾 向 があります プログラムは 一 般 に 要 求 の 変 化 に 適 応 しやすい すなわち そ うでないプログラムに 比 べて 拡 張 が 容 易 であると 言 えます さらに バインディング ドキュメント アーキテクチャ スクリプト 機 能 など Cocoaのさまざまな 技 術 やアーキテクチャがMVCを 基 盤 とし ているので カスタムオブジェクトもMVCで 定 義 された 何 らかの 役 割 を 担 う 必 要 があります MVCオブジェクトの 役 割 と 関 係 MVCデザインパターンでは モデル ビュー コントローラという3 種 類 のオブジェクト 群 を 考 えま す アプリケーションにおいてこの3 種 類 のオブジェクト 群 が 果 たすべき 役 割 と それぞれを 結 ぶ 通 信 路 を 定 義 しているのです アプリケーション 設 計 においては この3 種 類 それぞれに 該 当 するオブ ジェクトを 選 択 する(あるいはカスタムクラスを 作 成 する) という 重 要 な 手 順 があります 各 オブ ジェクト 群 は 概 念 上 の( 抽 象 的 な) 境 界 で 分 離 し この 境 界 を 越 えて 相 互 のやり 取 りを 行 うことに なります モデルオブジェクトはデータや 基 本 的 な 振 る 舞 いをカプセル 化 モデルオブジェクトは アプリケーションを 特 徴 づける 情 報 や 技 術 を 表 します アプリケーションが 扱 うデータを 保 持 し これを 操 作 するロジックを 定 義 しているのです 適 切 に 設 計 されたMVCアプリ ケーションでは 重 要 なデータをモデルオブジェクトにカプセル 化 しています アプリケーションの 永 続 的 な 状 態 を 構 成 するデータは ファイルに 保 存 するか データベースに 格 納 するかに 関 わらず アプリケーションに 読 み 込 んだ 後 はモデルオブジェクトの 管 理 下 に 置 かなければなりません ある 特 定 の 問 題 領 域 に 関 する 情 報 や 技 術 を 表 すものなので さまざまな 用 途 に 使 える 傾 向 があります 45

46 Model-View-Controllerパターン MVCオブジェクトの 役 割 と 関 係 理 論 上 モデルオブジェクトには これを 目 に 見 える 形 に 表 現 し 編 集 できるようにするユーザイン ターフェイスとの 間 に 明 示 的 な 接 続 がありません たとえば ( 住 所 録 アプリケーションの) 人 を 表 すモデルオブジェクトには 誕 生 日 を 格 納 しようと 考 えるでしょう モデルオブジェクト Person に 格 納 するデータとしてふさわしいと 言 えます しかし 書 式 文 字 列 その 他 日 付 の 表 現 方 法 に 関 す る 情 報 は 恐 らく 別 の 場 所 で 管 理 するべきです 現 実 には 分 離 する 方 法 が 常 に 最 善 とは 限 らず ある 程 度 柔 軟 に 適 応 する 余 地 があります しかし 一 般 に モデルオブジェクトは インターフェイスや 表 現 の 問 題 に 関 与 するべきではありません 例 外 扱 いすることが 妥 当 である 例 として 描 画 アプリケーションがあります モデルオブジェクトは 表 示 される 図 形 を 表 します 図 形 オブジェクトは 自 分 自 身 がどのように 描 画 されるか を 知 っていな ければ 意 味 がありません 目 に 見 える( 描 画 される) もの を 定 義 することが このオブジェクト の レゾンデートル( 存 在 意 義 ) であるからです しかしこの 場 合 でも 図 形 オブジェクトは ある 特 定 のビューに 描 画 されることを 前 提 としてはならず したがって 自 分 自 身 をどこに 描 画 するか という 情 報 は 管 理 しません 描 画 を 主 導 するビューオブジェクトに 自 分 自 身 を 描 画 するよう 依 頼 さ れる という 形 を 取 るべきなのです ビューオブジェクトは 情 報 をユーザ 向 けに 表 現 ビューオブジェクトは モデルが 表 すデータをどのように 表 示 し どのようにすればユーザが 編 集 で きるか その 方 法 を 知 っています 当 該 データを 保 存 する 方 法 については 責 任 を 負 いません(もちろ ん 実 際 にデータを 保 存 することが 決 してない という 意 味 ではありません 性 能 上 の 理 由 でデータ をキャッシュする などの 工 夫 をすることはあります) ビューオブジェクトに 表 示 するのは ある モデルオブジェクトの 一 部 だけであることも 全 体 であることもあります さらに 異 なる 種 類 のモ デルオブジェクトを 多 数 表 示 することも 可 能 です ビューにもさまざまな 変 種 があるのです ビューオブジェクトは 一 般 に 再 利 用 性 が 高 く さまざまな 設 定 が 可 能 です また アプリケーショ ンをまたがって 一 貫 性 を 与 えることもできます Cocoaの 場 合 AppKitフレームワークに 多 数 のビュー オブジェクトが 定 義 されており その 多 くはInterface Builderのライブラリとして 提 供 されています AppKitのビューオブジェクト たとえばNSButtonオブジェクトをさまざまな 用 途 に 再 利 用 することに より どのCocoaアプリケーションのボタンも 同 じように 振 る 舞 うことが 保 証 されます したがって アプリケーションをまたがって 外 観 や 振 る 舞 いの 一 貫 性 を 高 いレベルで 保 つことができるのです ビューはモデルを 正 しく 表 示 しなければなりません したがって 通 常 モデルに 変 化 があればそれ を 認 識 する 必 要 があります モデルオブジェクトは 特 定 のビューオブジェクトに 結 びついていないの で 変 化 した 旨 を 伝 える 汎 用 的 な 手 段 が 必 要 です 46

47 Model-View-Controllerパターン MVCオブジェクトの 役 割 と 関 係 コントローラオブジェクトはモデルをビューに 結 びつける コントローラオブジェクトは ビューオブジェクトとモデルオブジェクトの 仲 介 役 として 振 る 舞 いま す コントローラは 多 くの 場 合 ビューが 表 示 のために 必 要 なモデルオブジェクトにアクセスするた めの 手 段 となり また モデルの 状 態 変 化 をビューが 認 識 するための 導 管 として 動 作 します また アプリケーションのタスク 群 をセットアップし 調 整 することや ほかのオブジェクトのライフサイク ルを 管 理 することも 可 能 です Cocoaの 典 型 的 なMVC 設 計 では ユーザがビューオブジェクトを 介 して 値 の 入 力 や 選 択 を 行 うと そ の 内 容 がコントローラオブジェクトに 伝 わります コントローラオブジェクトは ユーザ 入 力 をアプ リケーション 特 有 のやり 方 で 解 釈 します そしてモデルオブジェクトに この 入 力 を 使 って 実 行 する べきこと( 値 を 追 加 する 現 行 レコードを 削 除 する など)を 指 示 し あるいは 該 当 するプロパティ の 値 を 変 更 するよう 指 示 します また 同 じユーザ 入 力 に 基 づき ビューオブジェクトに 対 して 外 観 や 振 る 舞 いを 変 えるよう 指 示 する(たとえば ボタンに 対 して 押 下 できない 状 態 にするよう 指 示 する)ことも 考 えられます 逆 にモデルオブジェクトの 状 態 が 変 化 した(たとえば データソースか ら 新 たにデータを 読 み 込 んだ など) 場 合 も 同 様 に その 内 容 がコントローラオブジェクトに 伝 わり ます コントローラオブジェクトはこれに 応 じて ビューオブジェクトに 対 し 表 示 を 更 新 するよう 指 示 します コントローラオブジェクトは 種 類 によって 再 利 用 性 が 高 いものと 低 いものがあります Cocoaの 各 種 のコントローラオブジェクト (48 ページ)に Cocoaに 組 み 込 まれた 各 種 のコントローラオブジェ クトを 説 明 します 役 割 の 兼 務 MVCの 役 割 を ひとつのオブジェクトが 兼 務 することもあります たとえばコントローラとビューの 役 割 を 兼 務 するオブジェクトはビューコントローラと 呼 びます 同 様 に モデルコントローラと 呼 ば れるオブジェクトもあります アプリケーションによっては このように 役 割 を 兼 務 するオブジェク トがあっても 妥 当 な 設 計 として 受 け 入 れられます モデルコントローラ は コントローラでありながら モデル 層 にも 関 与 するオブジェクトです これ はモデルを 所 有 しています 主 な 責 務 は モデルを 管 理 し ビューオブジェクトと 通 信 すること です 総 じて モデルに 適 用 されるアクションメソッドも 一 般 にモデルコントローラに 実 装 しま す ドキュメントアーキテクチャには このようなメソッドが 多 数 あります たとえばNSDocument オブジェクト(ドキュメントアーキテクチャの 中 核 )は ファイルの 保 存 に 関 するアクションメソッ ドを 自 動 的 に 処 理 します ビューコントローラは コントローラでありながら ビュー 層 にも 関 与 するオブジェクトです これ はインターフェイス(ビュー)を 所 有 しています 主 な 責 務 は インターフェイスを 管 理 し モ デルと 通 信 することです ビューに 表 示 されるデータに 関 わるアクションメソッドは 一 般 にビュー コントローラに 実 装 します ビューコントローラの 例 として NSWindowControllerオブジェクト (これもドキュメントアーキテクチャの 一 端 を 担 う)があります 47

48 Model-View-Controllerパターン Cocoaの 各 種 のコントローラオブジェクト MVCアプリケーションの 設 計 ガイドライン (52 ページ)に MVCの 役 割 を 兼 務 するオブジェクト に 関 する 設 計 上 のガイドラインをいくつか 示 します さらに 学 びたい 方 へ: Document-Based Applications Overview では 別 の 観 点 から モデ ルコントローラとビューコントローラの 違 いを 説 明 しています Cocoaの 各 種 のコントローラオブジェクト コントローラオブジェクトはモデルをビューに 結 びつける (47 ページ)では コントローラオブ ジェクトについて 抽 象 的 に 概 要 を 説 明 しました しかし 実 際 にははるかに 複 雑 です Cocoaには 大 き く 分 けて 仲 介 型 (mediating)と 調 整 型 (coordinating)という2 種 類 のコントローラオブジェクトが あります それぞれ 異 なるクラス 群 と 関 連 づけられており したがってその 振 る 舞 いも 違 います 仲 介 型 コントローラ は 一 般 に NSControllerクラスから 派 生 したオブジェクトです これはCocoa のバインディング 技 術 で 使 われます ビューオブジェクトとモデルオブジェクトの 間 を 仲 介 し デー タの 受 け 渡 しに 便 宜 を 図 ります iosにおける 注 意 事 項 : AppKitにはNSControllerとそのサブクラスが 実 装 されています こ ういったクラスやバインディング 技 術 は iosでは 利 用 できません 仲 介 型 コントローラは 既 製 のオブジェクトであることが 多 く Interface Builderライブラリからドラッ グ 操 作 により 追 加 できます 仲 介 型 コントローラの 設 定 により ビューオブジェクトとコントローラ オブジェクトのプロパティ 間 にバインディングを 確 立 し 次 いで コントローラのプロパティと モ デルオブジェクトのある 特 定 のプロパティとの 間 に バインディングを 確 立 します すると ビュー オブジェクトの 表 示 値 をユーザが 変 更 したとき 仲 介 型 コントローラを 介 して 自 動 的 に 新 しい 値 がモ デルオブジェクトに 伝 わり ストレージに 格 納 されるようになります モデルのプロパティ 値 が 変 化 したときも 同 様 に その 旨 がビューに 伝 わり 表 示 にも 反 映 されます 抽 象 クラスであるNSController と その 具 象 サブクラスであるNSObjectController NSArrayController NSUserDefaultsController NSTreeControllerには 変 更 を 確 定 または 破 棄 する 選 択 値 やプ レースホルダ 値 を 管 理 する などの 機 能 があります 調 整 型 コントローラ は 一 般 に NSWindowControllerまたはNSDocumentControllerのオブジェクト (AppKitでのみ 使 用 可 ) あるいはNSObjectのカスタムサブクラスのインスタンスです アプリケー ションにおけるその 役 割 は アプリケーション 全 体 またはその 一 部 (nibファイルから 展 開 (unarchive) したオブジェクトなど)の 機 能 を 高 所 から 見 渡 して 調 整 することです 調 整 型 コントローラは 次 の ようなサービスを 提 供 します デリゲートメッセージに 応 答 し 通 知 を 監 視 する 48

49 Model-View-Controllerパターン 複 合 デザインパターンとしてのMVC アクションメッセージに 応 答 する 所 有 するオブジェクトのライフサイクルを 管 理 する( 適 切 な 時 点 で 解 放 するなど) オブジェクト 間 の 接 続 を 確 立 するなどのセットアップタスクを 実 行 する NSWindowControllerクラスやNSDocumentControllerクラスは ドキュメントベースのアプリケー ションを 対 象 とするCocoaアーキテクチャの 一 部 を 成 します このクラスのインスタンスには 上 記 のサービスのいくつかについて デフォルトの 実 装 がなされています サブクラスを 作 成 し アプリ ケーション 特 有 の 振 る 舞 いを 実 装 することも 可 能 です NSWindowControllerオブジェクトは ド キュメントアーキテクチャを 基 盤 としないアプリケーションのウインドウ 管 理 にも 使 えます 調 整 型 コントローラは nibファイルにアーカイブされたオブジェクトを 所 有 することが 少 なくあり ません nibファイルの 外 に 位 置 する 調 整 型 コントローラが ファイル 所 有 者 としての 立 場 でそのオ ブジェクトを 管 理 するのです 調 整 型 コントローラが 所 有 するオブジェクトには 仲 介 型 コントロー ラや ウインドウオブジェクト ビューオブジェクトなどがあります 調 整 型 コントローラの ファ イル 所 有 者 としての 性 質 については 複 合 デザインパターンとしてのMVC (49 ページ)を 参 照 し てください NSObjectのカスタムサブクラスのインスタンスは 調 整 型 コントローラとしても 完 全 に 適 したもの になりえます このようなコントローラオブジェクトは 仲 介 型 としての 機 能 と 調 整 型 としての 機 能 を 併 せ 持 っています 仲 介 型 コントローラとして 振 る 舞 う 場 合 には ターゲットアクション アウト レット デリゲート 通 知 などの 機 構 を 使 って ビューオブジェクトとモデルオブジェクト 間 のデー タの 受 け 渡 しに 便 宜 を 図 ります もっとも グルーコードが 多 いという 傾 向 があるほか もっぱらア プリケーション 特 有 の 処 理 をするので 再 利 用 性 に 乏 しいオブジェクトと 言 えます さらに 学 びたい 方 へ: Cocoaのバインディング 技 術 について 詳 しくは Cocoa Bindings Programming Topics を 参 照 してください 複 合 デザインパターンとしてのMVC Model-View-Controller は より 基 本 的 なデザインパターンをいくつか 組 み 合 わせた 形 のデザイン パターンです 基 本 パターンどうしの 組 み 合 わせにより MVCアプリケーションを 特 徴 づける 機 能 の 分 割 や 通 信 経 路 を 定 義 しています しかし 従 来 型 のMVCは 組 み 合 わせる 基 本 パターンが 現 在 の Cocoaのそれとは 違 っていました その 違 いは 主 として コントローラオブジェクトやビューオブジェ クトに 与 える 役 割 に 関 するものです 当 初 の(Smalltalk 流 の) 考 え 方 では MVCはComposite Strategy Observerというパターンから 成 っ ていました 49

50 Model-View-Controllerパターン 複 合 デザインパターンとしてのMVC Composite:アプリケーションのビューオブジェクトは 実 際 には 入 れ 子 になったビューの 複 合 体 (composite)であり このビュー 群 が 協 調 して(ビュー 階 層 の 形 で) 動 作 します この 表 示 コ ンポーネントは ウインドウを 頂 点 とし その 下 にテーブルビューなどの 複 合 ビュー さらにそ の 下 にはボタンなどの 分 割 できないビューがあります ユーザ 入 力 や 画 面 表 示 の 処 理 は 複 合 体 を 構 成 するどのレベルでも 可 能 です Strategy:コントローラオブジェクトは いくつかのビューオブジェクトに 対 する 戦 略 (strategy) を 実 装 しています ビューオブジェクトの 機 能 は( 視 覚 的 ) 表 示 に 関 わる 範 囲 に 限 定 し イン ターフェイスの 振 る 舞 いが 当 該 アプリケーションにおいてはどのような 意 味 を 持 つか の 判 断 は すべてコントローラに 委 譲 します Observer:モデルオブジェクトは 自 分 自 身 と 直 接 的 な 関 わり 合 いがあるオブジェクト( 一 般 に ビューオブジェクト)の 状 態 が 変 化 すると その 通 知 を 受 け 取 ります 従 来 型 のComposite-Strategy-Observerパターンは 図 7-1に 示 すように 連 携 して 動 作 します 複 合 体 の 階 層 のあるレベルで ユーザがビューを 操 作 すると イベントが 生 成 されます コントローラオブ ジェクトはイベントを 受 け 取 り アプリケーション 特 有 の 方 法 で 解 釈 します(すなわち 戦 略 を 適 用 します) 戦 略 には (メッセージを 介 して)モデルオブジェクトに 状 態 を 変 えるよう 要 求 するも の ( 複 合 体 の 階 層 のあるレベルで)ビューオブジェクトに 振 る 舞 いや 外 観 を 変 えるよう 要 求 するも のがあります 一 方 モデルオブジェクトは 状 態 が 変 化 すると オブザーバとして 登 録 されている オブジェクトすべてにその 旨 を 通 知 します オブザーバがビューオブジェクトである 場 合 は 通 知 を 受 けて 外 観 を 変 えることも 考 えられます 図 7-1 複 合 パターンとしてのMVC( 従 来 型 ) Strategy User action Controller Update Composite View Update Notify Model Observer Get changed state Cocoaにおける 複 合 パターンとしてのMVCも ある 程 度 これと 似 ています 実 際 図 7-1のようにア プリケーションを 構 築 することも まったく 問 題 ありません バインディング 技 術 を 使 うと ビュー がモデルオブジェクトを 直 接 監 視 し 状 態 変 化 に 応 じて 通 知 を 受 け 取 る 形 のCocoa MVCアプリケーショ ンを 容 易 に 構 築 できます しかしこの 設 計 には 理 論 上 の 問 題 があります ビューやモデルは アプ リケーションでも 特 に 再 利 用 性 の 高 いオブジェクトでなければなりません ビューオブジェクトは オペレーティングシステムやその 上 で 動 作 するアプリケーションの look and feel( 外 観 ) を 表 し ます 外 観 や 振 る 舞 いの 一 貫 性 が 重 要 であり 再 利 用 性 が 高 いことが 求 められます 一 方 モデルオ 50

51 Model-View-Controllerパターン 複 合 デザインパターンとしてのMVC ブジェクトはその 性 質 上 問 題 領 域 に 対 応 するデータをカプセル 化 し そのデータに 対 する 処 理 を 行 います 設 計 の 観 点 からは 再 利 用 性 を 高 めるためにも モデルとビューを 完 全 に 分 離 することが 重 要 なのです 多 くのCocoaアプリケーションでは モデルオブジェクトの 状 態 が 変 化 すると その 通 知 はコントロー ラオブジェクトを 経 由 してビューオブジェクトに 伝 わります 図 7-2にこの 様 子 を 示 します 2つの 基 本 的 なデザインパターンが 関 与 していますが よりすっきりとしています 図 7-2 複 合 パターンとしてのMVC(Cocoa) User action Mediator Strategy Controller Update View Update Notify Model Command Composite Observer この 複 合 デザインパターンでは コントローラオブジェクトはMediatorパターンとStrategyパターンを 包 含 しています モデルとビューの 間 でやり 取 りされるデータフローを 両 方 向 とも 仲 介 していま す モデルの 状 態 変 化 はコントローラオブジェクトを 経 由 してビューオブジェクトに 伝 わります さ らに ビューオブジェクトには ターゲットアクション 機 構 の 実 装 という 形 で Commandパターン も 含 まれています 注 意 : ターゲットアクション は ビューオブジェクトがユーザの 入 力 や 選 択 を 通 知 する ための 機 構 であり 調 整 型 仲 介 型 のどちらのコントローラオブジェクトにも 実 装 できま す しかしこの 機 構 の 設 計 は コントローラの 型 によって 異 なります 調 整 型 コントローラ の 場 合 Interface Builder 上 でビューオブジェクトをそのターゲット(コントローラオブジェ クト)に 接 続 し 所 定 のシグニチャに 従 って 実 装 したアクションセレクタを 指 定 します ウ インドウのデリゲートやグローバルアプリケーションオブジェクトが 利 用 できるので レス ポンダチェーンに 組 み 込 むことも 可 能 です 一 方 仲 介 型 コントローラに 使 われるバイン ディング 機 構 も ビューオブジェクトをターゲットに 接 続 するものですが そのアクション は 引 数 の 個 数 や 型 は 自 由 です ただしレスポンダチェーンに 組 み 込 むことはできません 図 7-2に 示 した 改 良 型 の 複 合 デザインパターンは 特 にこれがMediatorデザインパターンに 基 づいて いる 実 用 的 にも 理 論 的 にも 長 所 があります 仲 介 型 コントローラはNSControllerの 具 象 サブクラ スから 派 生 したもので Mediatorパターンを 実 装 しているだけでなく 選 択 値 やプレースホルダ 値 の 管 理 など アプリケーションにとって 役 に 立 つさまざまな 機 能 を 提 供 します さらに バインディン 51

52 Model-View-Controllerパターン MVCアプリケーションの 設 計 ガイドライン グ 技 術 を 使 わない 場 合 でも ビューオブジェクトはCocoa 通 知 センターなどの 機 構 を 使 って モデル オブジェクトから 通 知 を 受 け 取 ることができます しかしそのためには ビューのサブクラスを 別 途 作 成 して モデルオブジェクトがポストする 通 知 に 関 する 処 理 を 追 加 しなければなりません 適 切 に 設 計 されたCocoa MVCアプリケーションでは 多 くの 場 合 調 整 型 コントローラオブジェクト が 仲 介 型 コントローラを 所 有 し これはnibファイルにアーカイブされています 図 7-3に この2 種 類 のコントローラオブジェクトの 関 係 を 示 します 図 7-3 nibファイルの 所 有 者 としてこれを 管 理 する 調 整 型 コントローラ Nib file View Coordinating Controller Owns Data flow Mediating Controller Data flow Model MVCアプリケーションの 設 計 ガイドライン 以 下 アプリケーションの 設 計 においてModel-View-Controllerを 検 討 する 際 のガイドラインをいくつ か 示 します NSObjectのカスタムサブクラスのインスタンスを 仲 介 型 コントローラとして 使 うことも 可 能 です が そのために 必 要 な 処 理 を すべて 独 自 に 実 装 する 必 要 はありません Cocoaバインディング 技 術 を 想 定 して 設 計 された 既 製 のNSControllerオブジェクトを 使 うとよいでしょう 具 体 的 には NSControllerの 具 象 サブクラスである NSObjectController NSArrayController NSUserDefaultsController NSTreeControllerのいずれか またはそのカスタムサブクラス のインスタンスを 使 ってください 52

53 Model-View-Controllerパターン MVCアプリケーションの 設 計 ガイドライン しかし アプリケーションが 非 常 に 単 純 であり 若 干 のグルーコードを 記 述 するだけで アウト レットやターゲットアクションを 使 って 仲 介 役 としての 振 る 舞 いを 実 装 できるのであれば NSObjectのカスタムサブクラスのインスタンスを 仲 介 型 コントローラとして 使 っても 構 いませ ん NSObjectのカスタムサブクラスでは 仲 介 型 コントローラをNSControllerのように キー 値 コーディング キー 値 監 視 エディタプロトコルを 用 いて 実 装 することも 可 能 です MVCの 役 割 をひとつのオブジェクトに 兼 務 させることもできなくはありませんが 一 般 には 役 割 を 明 確 に 分 割 する 戦 略 の 方 が 優 れています こうすることにより オブジェクトの 再 利 用 性 や オブジェクトが 使 われているプログラムの 拡 張 性 が 高 まります MVCの 役 割 をひとつのクラ スに 兼 務 させる 場 合 も 当 該 クラスの 中 心 的 な 役 割 を 決 めておくべきです 同 じ 実 装 ファイルを ( 保 守 性 を 高 めるため)カテゴリ 分 けすることにより クラスを 拡 張 してそれ 以 外 の 役 割 も 担 え るようにしてください MVCアプリケーションの 設 計 においては ( 少 なくとも 理 論 的 には) 再 利 用 が 可 能 なオブジェク トを できるだけ 多 くすることを 目 標 としてください 特 にビューオブジェクトやモデルオブ ジェクトは 再 利 用 性 が 高 いものでなければなりません( 既 製 の 仲 介 型 コントローラオブジェク トは もちろん 再 利 用 可 能 です) アプリケーション 固 有 の 振 る 舞 いは できるだけコントロー ラオブジェクトに 集 約 するとよいでしょう ビューがモデルを 直 接 監 視 して 状 態 変 化 を 検 出 することも 可 能 ではありますが できるだけその ような 構 成 にはしないでください ビューオブジェクトは 常 に 仲 介 型 コントローラを 経 由 し て モデルオブジェクトの 状 態 変 化 を 知 るようにするべきです その 理 由 は2つあります バインディング 機 構 を 使 って ビューオブジェクトが 直 接 モデルオブジェクトのプロパティ を 監 視 する 構 成 にすると NSControllerやそのサブクラスの 長 所 たる 機 能 ( 選 択 やプレース ホルダの 管 理 変 更 を 確 定 / 破 棄 する 機 能 など)を 活 用 できません バインディング 機 構 を 使 わない 場 合 既 存 のビュークラスのサブクラスを 作 って モデルオ ブジェクトがポストする 変 更 通 知 を 監 視 できるようにする 必 要 があります アプリケーションを 構 成 するクラス 間 のコード 依 存 性 をできるだけ 制 限 してください ほかのク ラスに 対 する 依 存 性 が 大 きいほど 再 利 用 性 は 損 なわれます 具 体 的 なガイドラインは 関 与 す る2つのクラスの MVCパターンにおける 役 割 によって 異 なります ビュークラスは モデルクラスに 依 存 するべきではありません(もっとも 一 部 のカスタム ビューではこれが 避 けられないこともあります) ビュークラスは 仲 介 型 コントローラクラスに 依 存 するべきではありません モデルクラスは ほかのモデルクラス 以 外 に 依 存 するべきではありません 仲 介 型 コントローラクラスは モデルクラスに 依 存 するべきではありません(ただし ビュー と 同 様 カスタムコントローラクラスではこれが 必 要 な 場 合 もあります) 仲 介 型 コントローラクラスは ビュークラスや 調 整 型 コントローラクラスに 依 存 するべきで はありません 調 整 型 コントローラクラスは MVCにおけるあらゆる 役 割 のクラスに 依 存 します 53

54 Model-View-Controllerパターン Cocoa(Mac OS X)におけるModel-View-Controller プログラミング 上 のある 問 題 を 解 決 するアーキテクチャをCocoaが 提 供 しており これがMVCの 役 割 をある 特 定 の 種 類 のオブジェクトに 割 り 当 てているならば そのアーキテクチャに 従 ってく ださい こうすればプロジェクトの 編 成 がはるかに 容 易 になります たとえばドキュメントアー キテクチャには NSDocumentオブジェクト(nibファイルにアーカイブされるモデルコントロー ラ)をファイルの 所 有 者 として 設 定 する Xcodeプロジェクトのテンプレートがあります Cocoa(Mac OS X)におけるModel-View-Controller Model-View-Controllerデザインパターンは Cocoaのさまざまな 機 構 や 技 術 の 基 盤 となっています し たがって オブジェクト 指 向 設 計 におけるMVCの 重 要 性 は アプリケーションの 再 利 用 性 や 拡 張 性 を 高 めることだけにとどまりません アプリケーション 自 身 もMVCパターンに 従 っていれば MVCベー スであるCocoaの 技 術 を 組 み 込 んだとき その 効 果 をより 大 きく 発 揮 できることになります MVCに 従 って 適 切 に 役 割 を 分 割 していれば こういった 技 術 を 取 り 入 れることに 特 段 の 困 難 はないはずで す 逆 に 分 割 がうまくいっていなければ かなりの 作 業 を 強 いられることになるでしょう Mac OS XのCocoaには Model-View-Controllerを 基 盤 とする 次 のようなアーキテクチャ 機 構 技 術 が 組 み 込 まれています ドキュメントアーキテクチャ このアーキテクチャのもとでは ドキュメントベースのアプリ ケーションは 全 体 を 制 御 するコントローラオブジェクト(NSDocumentController) 各 ド キュメントウインドウのコントローラオブジェクト(NSWindowController) 各 ドキュメント についてコントローラとモデルの 役 割 を 兼 務 するオブジェクト(NSDocument)から 成 ります バインディング MVCはCocoaにおけるバインディング 技 術 の 中 核 です 抽 象 クラスNSController の 具 象 サブクラスとして 既 製 のコントローラオブジェクトがあり ビューオブジェクトと 適 切 に 設 計 されたモデルオブジェクトとの 間 に バインディングを 確 立 するよう 設 定 できます アプリケーションのスクリプト 制 御 方 式 アプリケーションをスクリプトで 制 御 できるようにす るためには MVCデザインパターンに 従 うだけでなく モデルオブジェクトも 適 切 に 設 計 する 必 要 があります スクリプトコマンドのうち アプリケーションの 状 態 にアクセスしたり ある 動 作 を 要 求 したりするものは 一 般 に モデルオブジェクトまたはコントローラオブジェクトに 送 信 されます Core Data Core Dataフレームワークは モデルオブジェクト 間 のグラフ( 構 造 )を 管 理 し これ を 永 続 ストアに 格 納 (およびここから 検 索 )することにより オブジェクトの 永 続 性 を 保 証 しま す Core DataはCocoaバインディング 技 術 に 緊 密 に 統 合 されています MVCもオブジェクトモ デリングデザインパターンも Core Dataアーキテクチャを 決 定 づける 要 素 です Undo Undoアーキテクチャでもモデルオブジェクトは 中 心 的 な 役 割 を 担 います 多 くの 場 合 モデルオブジェクトのプリミティブメソッド( 通 常 はアクセサメソッド)に 取 り 消 し/ 再 実 行 の 処 理 を 実 装 します アクションのビュー/コントローラオブジェクトもこの 処 理 に 関 与 します た 54

55 Model-View-Controllerパターン Cocoa(Mac OS X)におけるModel-View-Controller とえば 当 該 オブジェクトに 取 り 消 し/ 再 実 行 の 機 能 を 起 動 するメニュー 項 目 に 表 示 する 文 字 列 を 管 理 させる あるいはテキストビューで 選 択 した 内 容 を 取 り 消 せるようにする などが 考 えら れます 55

56 オブジェクトモデリング この 章 では オブジェクトモデリングやキー 値 コーディング(key-value coding)に 関 する 用 語 を 説 明 し 例 を 示 します いずれもCocoaバインディングやCore Dataフレームワークに 特 有 の 概 念 です キー パス(key path) などの 用 語 を 理 解 することが この 技 術 を 効 果 的 に 使 うための 鍵 となります オブ ジェクト 指 向 設 計 やキー 値 コーディングが 初 めてという 方 は ぜひお 読 みください Core Dataフレームワークを 利 用 するためには モデルオブジェクトを ビューやコントローラに 依 存 しない 形 で 記 述 する 手 段 が 必 要 です 再 利 用 性 に 優 れた 設 計 では ビューやコントローラがモデルの プロパティにアクセスし しかも 相 互 に 依 存 関 係 が 生 じないような 手 段 がなければなりません Core Dataフレームワークはこの 課 題 に 対 処 するため データベース 技 術 特 に エンティティ-リレーショ ン( 実 体 - 関 連 entity-relationship) モデルの 考 え 方 や 用 語 を 借 用 しています エンティティ-リレーション モデルはオブジェクトの 表 現 方 法 のひとつで データソースのデー タ 構 造 を オブジェクト 指 向 システムのオブジェクトに 対 応 づけて 記 述 するためによく 使 われます これはCocoa 独 自 のものではありません データベースの 分 野 では 広 く 普 及 しており その 規 則 や 用 語 もさまざまな 文 献 に 載 っています オブジェクトをデータソースに 格 納 し ここから 検 索 する 処 理 の 記 述 にも 便 利 な 表 現 方 法 です 実 際 のデータソースは データベース ファイル ウェブサービス など 永 続 ストアであれば 何 であっても 構 いません データソースの 種 類 には 依 存 しないので あら ゆる 種 類 のオブジェクト およびほかのオブジェクトとの 関 係 を 表 現 するために 使 えます エンティティ-リレーション モデルでは データを 保 持 するオブジェクトをエンティティ(entities) その 構 成 要 素 をアトリビュート(attributes) データを 保 持 するほかのオブジェクトのへ 参 照 をリレー ション(relationships) と 呼 びます アトリビュートとリレーションを 併 せた 概 念 がプロパティ(properties) です この3つの 単 純 な 構 成 要 素 すなわち エンティティ アトリビュート リレーションを 組 み 合 わせて いくらでも 複 雑 なシステムをモデル 化 できます Cocoaでは 従 来 型 の エンティティ-リレーション モデルの 規 則 を 若 干 修 正 して 使 い ここではオ ブジェクトモデリングと 呼 びます オブジェクトモデリングは 特 に Model-View-Controller(MVC) デザインパターンでモデルオブジェクトを 表 現 する 場 合 に 有 用 です これは 驚 くようなことではあり ません どんなに 単 純 なCocoaアプリケーションであっても モデルは 一 般 に 永 続 的 である すなわ ち ファイルなどの データ 収 容 庫 に 格 納 されるからです 56

57 オブジェクトモデリング エンティティ エンティティ エンティティとはモデルオブジェクトのことです MVCデザインパターンで 言 うモデルオブジェクト とは アプリケーションを 構 成 するオブジェクトのうち 所 定 のデータをカプセル 化 し 当 該 データ を 操 作 する 手 段 を 提 供 するもののことです データは 一 般 に 永 続 的 ですが それよりも 重 要 なのは モデルオブジェクトがデータの 表 示 方 法 に 依 存 しないことです たとえば モデルオブジェクトを 構 造 化 したコレクション(オブジェクトモデル)の 形 で 企 業 の 顧 客 ベース 書 籍 を 集 めた 図 書 館 コンピュータを 集 めたネットワークなどを 表 現 できます 図 書 館 の 本 にはそれぞれ 書 名 ISBN 番 号 著 作 権 表 示 の 日 付 などのアトリビュートや 著 者 図 書 館 利 用 者 などほかのオブジェクトとのリレーションが 設 定 されます 理 論 上 構 成 する 各 部 分 を 識 別 できる 体 系 は オブジェクトモデルとして 表 現 できます 図 8-1に 例 として 従 業 員 管 理 アプリケーションのオブジェクトモデルを 示 します このモデルで は Departmentが 部 署 Employeeが 従 業 員 を 表 します 図 8-1 従 業 員 管 理 アプリケーションのオブジェクト 図 Department name budget Employee firstname lastname salary アトリビュート アトリビュートは エンティティの 構 造 のうち データを 含 むものを 表 します オブジェクトのアト リビュートとしては スカラ(integer float doubleの 値 )などの 単 純 な 値 もありますが Cの 構 造 体 (char 値 の 配 列 NSPoint 構 造 体 など)や プリミティブクラス(CocoaのNSNumber NSData NSColorなど)のインスタンスであることもあります NSColorのような 不 変 オブジェクトも 通 常 はアトリビュートと 見 なします(なお Core Dataが 本 来 サポートするのは NSAttributeDescription Class Reference に 示 したように ごく 限 られたアトリビュート 型 だけです しかし Core Data Programming Guide の Non-Standard Persistent Attributes に 示 すように 標 準 以 外 のアトリビュート 型 を 追 加 することも 可 能 です) 57

58 オブジェクトモデリング リレーション Cocoaでは アトリビュートは 一 般 に モデルのインスタンス 変 数 やアクセサメソッドに 対 応 します たとえばEmployeeには firstname lastname salaryなどのインスタンス 変 数 があります 従 業 員 管 理 アプリケーションには Employeeオブジェクトおよびそのアトリビュートのいくつかを 表 示 す る テーブルビューを 実 装 するかも 知 れません( 図 8-2を 参 照 ) 表 の 各 行 はEmployeeのインスタン スに 各 列 はEmployeeのアトリビュートに 対 応 します 図 8-2 従 業 員 のテーブルビュー リレーション モデルのプロパティにはアトリビュートのほかに ほかのオブジェクトとのリレーションを 表 すもの もあります アプリケーションは 一 般 に いくつかのクラスを 組 み 合 わせてモデルを 表 します 実 行 時 に 現 れるオブジェクトモデルは 関 連 するオブジェクトの 集 まりであって これがオブジェクトグ ラフを 構 成 します これは 一 般 に 永 続 的 オブジェクトです すなわち ユーザはこれを 生 成 した 後 消 えてしまわないよう アプリケーションを 終 了 する 前 に 何 らかのデータコンテナやファイルに 保 存 します(ドキュメントベースのアプリケーションはその 典 型 的 な 例 ) モデルオブジェクト 間 のリ レーションを 実 行 時 にたどることにより 関 連 するオブジェクトのプロパティにもアクセスできま す たとえば 従 業 員 管 理 アプリケーションでは 従 業 員 と 所 属 する 部 署 とのリレーション 従 業 員 とその 上 長 とのリレーションがあります 上 長 も 従 業 員 なので 従 業 員 - 上 長 のリレーションは 反 射 的 リレーション(reflexive relationship) すなわち あるエンティティから 同 じエンティティへのリレー ションになっています リレーションはその 性 質 上 両 方 向 であるため 少 なくとも 概 念 的 には 部 署 とそこに 属 する 従 業 員 とのリレーション 従 業 員 とその 部 下 とのリレーションもあります 図 8-3 (59 ページ)に DepartmentとEmployeeのリレーション およびEmployeeの 反 射 的 リレーションを 示 します この 例 で エンティティDepartmentのリレーション employees は エンティティEmployeeのリレーショ ン department の 逆 に 当 たります しかし リレーションを 一 方 向 にしかたどれない すなわち 逆 方 向 のリレーションはない ということもありえます たとえば ある 部 署 にどの 従 業 員 が 属 して 58

59 オブジェクトモデリング リレーション いるか を 調 べる 必 要 がないのであれば このリレーションはモデル 化 しなくても 構 いません( 一 般 論 としてはそうなのですが Core Dataでは Cocoaの 一 般 的 なオブジェクトモデリングに 制 約 を 追 加 して 原 則 として 逆 方 向 のリレーションもモデル 化 することとしています) 図 8-3 従 業 員 管 理 アプリケーションに 現 れる リレーション Department name budget Employee department employees firstname manager lastname salary directreports リレーションの 基 数 (cardinality)と 所 有 関 係 (Ownership) リレーションには 基 数 を 設 定 できます これは リレーションで 結 ばれる 先 に( 少 なくとも 潜 在 的 に)いくつのオブジェクトがあるか を 表 します 関 係 先 オブジェクトが 常 に1つであれば これを 対 1リレーション(to-one releaionship) と 呼 びます 一 方 関 係 先 オブジェクトが 複 数 であっても 構 わな い 場 合 は 対 多 リレーション(to-many relationship) と 言 います リレーションには 必 須 (mandatory)か 任 意 (optional)かという 区 別 もあります 必 須 のリレーションと は 関 係 先 を 必 ず 設 定 しなければならないリレーションのことです たとえば 従 業 員 は 全 員 どこか の 部 署 に 属 しなければなりません 一 方 任 意 のリレーションとは 文 字 通 り 関 係 先 がなくてもよ いリレーションのことです たとえば 直 属 の 部 下 がいない 従 業 員 もいます したがって 図 8-4 (59 ページ)に 示 したdirectReportsは 任 意 のリレーションということになります 基 数 の 範 囲 を 指 定 することも 可 能 です 任 意 の 対 1リレーションは 基 数 の 範 囲 が0 1ということに なります また ある 従 業 員 の 部 下 の 人 数 は どのような 値 にもなりえますが 0 15というように 下 限 と 上 限 を 設 定 することも 考 えられます( 任 意 の 対 多 リレーションの 例 ) 図 8-4に 従 業 員 管 理 アプリケーションに 現 れるリレーションの 基 数 を 示 します EmployeeとDepartment の 間 には 必 須 の 対 1リレーションがあります 従 業 員 はいずれか1つの 部 署 に 属 し 複 数 の 部 署 に 属 す ることはありません DepartmentとEmployeeの 間 には 任 意 の 対 多 リレーションがあります( * で 表 示 ) 従 業 員 と 上 長 との 関 係 は 任 意 の 対 1リレーションです( 0-1 で 表 示 ) 最 上 位 の 従 業 員 に 上 長 はいません 図 8-4 リレーションの 基 数 Department name budget Employee 1 department employees * firstname 0..1 manager lastname salary * directreports 59

60 オブジェクトモデリング プロパティへのアクセス リレーションで 結 ばれた 先 のオブジェクトとの 間 に 所 有 関 係 がある 場 合 と そうでない(ほかのオブ ジェクトと 共 有 する) 場 合 があることにも 注 意 してください プロパティへのアクセス モデル ビュー コントローラがそれぞれ 独 立 していても 動 作 するためには モデルの 実 装 に 依 存 し ない 方 法 で プロパティにアクセスできるようにする 必 要 があります これを 達 成 するために キー と 値 の 組 を 考 えます キー モデルのプロパティは 簡 単 なキーを 使 って 指 定 します 多 くの 場 合 これは 文 字 列 です ビューやコ ントローラは キーを 使 って 該 当 するアトリビュートの 値 を 検 索 します このように 設 計 すれば ア トリビュートそのものにデータが 収 容 されていなくても 構 わない すなわち 間 接 的 に 値 を 取 得 また は 導 出 してもよいことになります キー 値 コーディング(key-value coding)とは この 検 索 を 行 う 機 構 のことです オブジェクトのプロ パティに 間 接 的 に そして 状 況 によっては 自 動 的 に アクセスすることができます キー 値 コーディ ングでは オブジェクトのプロパティ( 一 般 にインスタンス 変 数 またはアクセサメソッド)の 名 前 を キーとして 使 い その 値 にアクセスします たとえばDepartmentオブジェクトの 名 前 は nameというキーで 取 得 します Departmentオブジェクト にnameというインスタンス 変 数 またはメソッドがあれば キーに 対 応 する 値 が 返 されます(どちらも なければエラー) 同 様 にEmployeeのアトリビュートも firstname lastname salaryなどといっ たキーを 使 って 取 得 できます 値 アトリビュートをひとつ 固 定 すると その 値 はどのエンティティでもすべて 同 じデータ 型 です アト リビュートのデータ 型 は 対 応 するインスタンス 変 数 の 宣 言 で またはアクセサメソッドの 戻 り 値 の 型 として 指 定 します たとえば Departmentオブジェクトのnameアトリビュートのデータ 型 は Objective-CのNSStringオブジェクトである というようになります キー 値 コーディングにより 返 されるのは 常 にオブジェクト 値 であることに 注 意 してください アク セサメソッドの 戻 り 値 型 やインスタンス 変 数 の 型 がオブジェクトでない 場 合 は NSNumberやNSValue のオブジェクトを 生 成 し これに 値 を 設 定 して 返 すようになっています たとえば Departmentの nameアトリビュートがnsstring 型 であれば キー 値 コーディングを 適 用 したとき Departmentオブ ジェクトのnameキーに 対 して 返 されるのはNSStringオブジェクトです 一 方 Departmentのbudget アトリビュートがfloat 型 であれば Departmentオブジェクトのbudgetキーに 対 して 返 されるのは NSNumberオブジェクトです 60

61 オブジェクトモデリング プロパティへのアクセス キー 値 コーディングを 使 って 値 を 設 定 する 場 合 も 同 様 に 対 応 するアクセサメソッドやインスタンス 変 数 によって 決 まるデータ 型 がオブジェクトでなければ 渡 されたオブジェクトから -type Value メソッドを 使 って 値 を 抽 出 し これを 設 定 するようになっています 対 1リレーションの 値 は 関 係 先 のオブジェクトです たとえば Employeeオブジェクトのdepartment プロパティの 値 はDepartmentオブジェクトです 対 多 リレーションの 値 はコレクションオブジェクト です コレクションの 実 装 方 法 には 集 合 と 配 列 の2 通 りがあります Core Dataを 使 っている 場 合 は 集 合 そうでなければ 一 般 に 配 列 で 表 され いずれの 場 合 も 関 係 先 のオブジェクトを 集 めたものにな ります たとえば Departmentオブジェクトのemployeesプロパティの 値 は 当 該 部 署 に 属 する Employeeオブジェクトのコレクションです 図 8-5に 従 業 員 管 理 アプリケーションのオブジェクト グラフの 例 を 示 します 図 8-5 従 業 員 管 理 アプリケーションのオブジェクトグラフ Employee Department name: "Marketing" budget: employees firstname: "Toni" lastname: "Lau" salary: 7000 manager department directreports Collection Collection Employee firstname: "Joe" lastname: "Jackson" salary: 5000 manager department directreports キーパス キーパスはドット 区 切 りでキーを 連 結 した 文 字 列 で オブジェクトのプロパティをこの 順 序 でたどる 旨 を 表 します 第 1のキーのプロパティは 関 係 先 のオブジェクトによって 決 まり それ 以 降 のキーは 直 前 のプロパティに 関 係 するものとして 評 価 されます キーパスを 使 えば モデルの 実 装 とは 独 立 に 関 連 するオブジェクトのプロパティを 指 定 できます オブジェクトグラフをたどって 関 連 するオ ブジェクトのアトリビュートに 到 るパスを いくらでも 深 くまで 指 定 できます 61

62 オブジェクトモデリング プロパティへのアクセス キー 値 コーディングの 機 構 は 与 えられたキーパスの 値 を キーと 値 の 組 と 同 じようにして 検 索 する 処 理 を 実 装 したものです たとえば 従 業 員 管 理 アプリケーションで Employeeオブジェクトが 属 する Departmentの 名 前 は department.nameというキーパスを 使 ってアクセスできます ここで departmentはemployeeのリレーション nameはdepartmentのアトリビュートです 関 係 先 エンティ ティのアトリビュートを 表 示 するような 場 合 に キーパスは 有 用 です たとえば 図 8-6のような 従 業 員 のテーブルビューには 従 業 員 が 属 する 部 署 オブジェクトの 名 前 が 表 示 されます 部 署 オブジェ クトそのものではありません Department 列 の 値 には Cocoaバインディングを 使 って 表 示 さ れる 配 列 の 要 素 であるEmployeeオブジェクトの department.nameがバインドされています 図 8-6 従 業 員 のテーブルビューに 部 署 名 が 表 示 されている 様 子 キーパスに 現 れるリレーションすべてに 値 があるとは 限 りません たとえば ある 従 業 員 がCEOであ れば そのmanagerリレーションはnilとなります このような 場 合 でもキー 値 コーディングの 機 構 は 破 綻 しません パスをたどるのをやめて nilなどの 適 切 な 値 を 返 すだけです 62

1 書 誌 作 成 機 能 (NACSIS-CAT)の 軽 量 化 合 理 化 電 子 情 報 資 源 への 適 切 な 対 応 のための 資 源 ( 人 的 資 源,システム 資 源, 経 費 を 含 む) の 確 保 のために, 書 誌 作 成 と 書 誌 管 理 作 業 の 軽 量 化 を 図

1 書 誌 作 成 機 能 (NACSIS-CAT)の 軽 量 化 合 理 化 電 子 情 報 資 源 への 適 切 な 対 応 のための 資 源 ( 人 的 資 源,システム 資 源, 経 費 を 含 む) の 確 保 のために, 書 誌 作 成 と 書 誌 管 理 作 業 の 軽 量 化 を 図 平 成 2 8 年 3 月 25 日 NACSIS-CAT 検 討 作 業 部 会 NACSIS-CAT/ILL の 軽 量 化 合 理 化 について( 基 本 方 針 )( 案 ) これからの 学 術 情 報 システム 構 築 検 討 委 員 会 ( 以 下, これから 委 員 会 ) は これか らの 学 術 情 報 システムの 在 り 方 について ( 平 成 27 年 5 月 29 日 )

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 株 式 会 社 化 に 伴 う から 特 定 の 員 への 株 式 譲 渡 に 係 る 課 税 関 係 と 手 続 きについて 平 成 20 年 2 月 商 工 中 金 当 資 料 は 貴 において 本 件 取 引 に 関 する 検 討 をされるに 際 して ご 参 考 のための 情 報 提 供 のみを 目 的 として 国 税 庁 の 確 認 を 受 けた 内 容 に 基 づき 商 工 中 金 が

More information

KINGSOFT Office 2016 動 作 環 境 対 応 日 本 語 版 版 共 通 利 用 上 記 動 作 以 上 以 上 空 容 量 以 上 他 接 続 環 境 推 奨 必 要 2

KINGSOFT Office 2016 動 作 環 境 対 応 日 本 語 版 版 共 通 利 用 上 記 動 作 以 上 以 上 空 容 量 以 上 他 接 続 環 境 推 奨 必 要 2 目 次 動 作 環 境 特 長 方 法 方 法 起 動 終 了 方 法 方 法 操 作 方 法 使 方 使 方 使 方 詳 細 設 定 使 方 KINGSOFT Office 2016 動 作 環 境 対 応 日 本 語 版 版 共 通 利 用 上 記 動 作 以 上 以 上 空 容 量 以 上 他 接 続 環 境 推 奨 必 要 2 KINGSOFT Office 2016 特 長 主 特 長 以

More information

( 別 紙 ) 以 下 法 とあるのは 改 正 法 第 5 条 の 規 定 による 改 正 後 の 健 康 保 険 法 を 指 す ( 施 行 期 日 は 平 成 28 年 4 月 1 日 ) 1. 標 準 報 酬 月 額 の 等 級 区 分 の 追 加 について 問 1 法 改 正 により 追 加

( 別 紙 ) 以 下 法 とあるのは 改 正 法 第 5 条 の 規 定 による 改 正 後 の 健 康 保 険 法 を 指 す ( 施 行 期 日 は 平 成 28 年 4 月 1 日 ) 1. 標 準 報 酬 月 額 の 等 級 区 分 の 追 加 について 問 1 法 改 正 により 追 加 別 添 事 務 連 絡 平 成 27 年 12 月 18 日 日 本 年 金 機 構 厚 生 年 金 保 険 部 長 殿 厚 生 労 働 省 年 金 局 事 業 管 理 課 長 持 続 可 能 な 医 療 保 険 制 度 を 構 築 するための 国 民 健 康 保 険 法 等 の 一 部 を 改 正 する 法 律 による 健 康 保 険 法 及 び 船 員 保 険 法 改 正 内 容 の 一 部 に

More information

1. 前 払 式 支 払 手 段 サーバ 型 の 前 払 式 支 払 手 段 に 関 する 利 用 者 保 護 等 発 行 者 があらかじめ 利 用 者 から 資 金 を 受 け 取 り 財 サービスを 受 ける 際 の 支 払 手 段 として 前 払 式 支 払 手 段 が 発 行 される 場 合

1. 前 払 式 支 払 手 段 サーバ 型 の 前 払 式 支 払 手 段 に 関 する 利 用 者 保 護 等 発 行 者 があらかじめ 利 用 者 から 資 金 を 受 け 取 り 財 サービスを 受 ける 際 の 支 払 手 段 として 前 払 式 支 払 手 段 が 発 行 される 場 合 決 済 WG 7-1 論 点 の 整 理 1. 前 払 式 支 払 手 段 サーバ 型 の 前 払 式 支 払 手 段 に 関 する 利 用 者 保 護 等 発 行 者 があらかじめ 利 用 者 から 資 金 を 受 け 取 り 財 サービスを 受 ける 際 の 支 払 手 段 として 前 払 式 支 払 手 段 が 発 行 される 場 合 紙 ICチップ 等 の 有 体 物 にその 価 値 が 記

More information

2 役 員 の 報 酬 等 の 支 給 状 況 平 成 27 年 度 年 間 報 酬 等 の 総 額 就 任 退 任 の 状 況 役 名 報 酬 ( 給 与 ) 賞 与 その 他 ( 内 容 ) 就 任 退 任 2,142 ( 地 域 手 当 ) 17,205 11,580 3,311 4 月 1

2 役 員 の 報 酬 等 の 支 給 状 況 平 成 27 年 度 年 間 報 酬 等 の 総 額 就 任 退 任 の 状 況 役 名 報 酬 ( 給 与 ) 賞 与 その 他 ( 内 容 ) 就 任 退 任 2,142 ( 地 域 手 当 ) 17,205 11,580 3,311 4 月 1 独 立 行 政 法 人 統 計 センター( 法 人 番 号 7011105002089)の 役 職 員 の 報 酬 給 与 等 について Ⅰ 役 員 報 酬 等 について 1 役 員 報 酬 についての 基 本 方 針 に 関 する 事 項 1 役 員 報 酬 の 支 給 水 準 の 設 定 についての 考 え 方 独 立 行 政 法 人 通 則 法 第 52 条 第 3 項 の 規 定 に 基 づき

More information

SXF 仕 様 実 装 規 約 版 ( 幾 何 検 定 編 ) 新 旧 対 照 表 2013/3/26 文 言 変 更 p.12(1. 基 本 事 項 ) (5)SXF 入 出 力 バージョン Ver.2 形 式 と Ver.3.0 形 式 および Ver.3.1 形 式 の 入 出 力 機 能 を

SXF 仕 様 実 装 規 約 版 ( 幾 何 検 定 編 ) 新 旧 対 照 表 2013/3/26 文 言 変 更 p.12(1. 基 本 事 項 ) (5)SXF 入 出 力 バージョン Ver.2 形 式 と Ver.3.0 形 式 および Ver.3.1 形 式 の 入 出 力 機 能 を SXF 仕 様 実 装 規 約 版 ( 幾 何 検 定 編 ) 新 旧 対 照 表 2013/3/26 改 訂 の 要 因 旧 新 (2013 年 4 月 版 ) 文 言 削 除 p.11(1. 基 本 事 項 ) (2) 保 証 すべき 実 数 の 精 度 p.5(1. 基 本 事 項 ) (2) 保 証 すべき 実 数 の 精 度 1. 用 紙 系 ( 線 種 ピッチ 等 用 紙 上 の 大 きさで

More information

中 間 利 払 日 とし 預 入 日 または 前 回 の 中 間 利 払 日 からその 中 間 利 払 日 の 前 日 までの 日 数 および 通 帳 または 証 書 記 載 の 中 間 利 払 利 率 によって 計 算 した 中 間 利 払 額 ( 以 下 中 間 払 利 息 といいます )を 利

中 間 利 払 日 とし 預 入 日 または 前 回 の 中 間 利 払 日 からその 中 間 利 払 日 の 前 日 までの 日 数 および 通 帳 または 証 書 記 載 の 中 間 利 払 利 率 によって 計 算 した 中 間 利 払 額 ( 以 下 中 間 払 利 息 といいます )を 利 自 由 金 利 型 定 期 預 金 M 型 (スーパー 定 期 ) 規 定 1.( 取 扱 店 の 範 囲 ) (1) 個 人 のお 客 さま この 預 金 は 当 店 のほか 当 金 庫 本 支 店 および 当 金 庫 が 提 携 した 他 の 労 働 金 庫 ( 以 下 提 携 金 庫 といいます )のどこの 店 舗 でも 預 入 れができます (2) 団 体 のお 客 さま この 預 金 は

More information

Ⅰ 調 査 の 概 要 1 目 的 義 務 教 育 の 機 会 均 等 その 水 準 の 維 持 向 上 の 観 点 から 的 な 児 童 生 徒 の 学 力 や 学 習 状 況 を 把 握 分 析 し 教 育 施 策 の 成 果 課 題 を 検 証 し その 改 善 を 図 るもに 学 校 におけ

Ⅰ 調 査 の 概 要 1 目 的 義 務 教 育 の 機 会 均 等 その 水 準 の 維 持 向 上 の 観 点 から 的 な 児 童 生 徒 の 学 力 や 学 習 状 況 を 把 握 分 析 し 教 育 施 策 の 成 果 課 題 を 検 証 し その 改 善 を 図 るもに 学 校 におけ Ⅰ 調 査 の 概 要 Ⅱ 札 幌 の 子 どもの 学 力 学 習 意 欲 等 について Ⅲ 学 力 調 査 の 結 果 概 要 及 び 改 善 の 方 向 等 について Ⅰ 調 査 の 概 要 1 目 的 義 務 教 育 の 機 会 均 等 その 水 準 の 維 持 向 上 の 観 点 から 的 な 児 童 生 徒 の 学 力 や 学 習 状 況 を 把 握 分 析 し 教 育 施 策 の 成 果

More information

預 金 を 確 保 しつつ 資 金 調 達 手 段 も 確 保 する 収 益 性 を 示 す 指 標 として 営 業 利 益 率 を 採 用 し 営 業 利 益 率 の 目 安 となる 数 値 を 公 表 する 株 主 の 皆 様 への 還 元 については 持 続 的 な 成 長 による 配 当 可

預 金 を 確 保 しつつ 資 金 調 達 手 段 も 確 保 する 収 益 性 を 示 す 指 標 として 営 業 利 益 率 を 採 用 し 営 業 利 益 率 の 目 安 となる 数 値 を 公 表 する 株 主 の 皆 様 への 還 元 については 持 続 的 な 成 長 による 配 当 可 ミスミグループ コーポレートガバナンス 基 本 方 針 本 基 本 方 針 は ミスミグループ( 以 下 当 社 グループ という)のコーポレートガバナン スに 関 する 基 本 的 な 考 え 方 を 定 めるものである 1. コーポレートガバナンスの 原 則 (1) 当 社 グループのコーポレートガバナンスは 当 社 グループの 持 続 的 な 成 長 と 中 長 期 的 な 企 業 価 値 の

More information

税金読本(8-5)特定口座と確定申告

税金読本(8-5)特定口座と確定申告 と 確 申 告 8-5 複 数 の 証 券 会 社 で 源 泉 徴 収 を 開 設 している 場 合 の 損 益 通 算 の 方 法 における 株 式 債 券 投 資 信 託 と 税 金 源 泉 徴 収 と 確 申 告 源 泉 徴 収 の 場 合 内 の 譲 するか 否 かは 1つの ごとに 選 渡 益 については 確 申 告 は 不 要 です 択 することができます つまり 投 資 家 が 内 の

More information

Taro-H19退職金(修正版).jtd

Taro-H19退職金(修正版).jtd 調 査 結 果 の 概 要 1 退 職 金 制 度 (1) 採 用 状 況 ( 表 1) 集 計 第 1 表 第 2 表 退 職 金 制 度 の 採 用 状 況 をみると 退 職 一 時 金 制 度 のみ 14 社 ( 退 職 金 制 度 採 用 企 業 246 社 の5.7 %) 退 職 年 金 制 度 のみ 27 社 ( 同 11.0%) 退 職 一 時 金 制 度 と 退 職 年 金 制 度

More information

Microsoft Word - ★HP版平成27年度検査の結果

Microsoft Word - ★HP版平成27年度検査の結果 平 成 7 年 度 検 査 結 果 について () 検 査 体 制 等 農 政 部 農 地 整 備 課 の 検 査 員 名 以 上 により 土 地 改 良 区 等 あたり 日 間 から 日 間 実 施 しました 農 業 振 興 事 務 所 の 土 地 改 良 区 指 導 担 当 職 員 及 び 関 係 市 町 職 員 が 立 会 いました () 検 査 件 数 定 期 検 査 8( 土 地 改 良

More information

ていることから それに 先 行 する 形 で 下 請 業 者 についても 対 策 を 講 じることとしまし た 本 県 としましては それまでの 間 に 未 加 入 の 建 設 業 者 に 加 入 していただきますよう 28 年 4 月 から 実 施 することとしました 問 6 公 共 工 事 の

ていることから それに 先 行 する 形 で 下 請 業 者 についても 対 策 を 講 じることとしまし た 本 県 としましては それまでの 間 に 未 加 入 の 建 設 業 者 に 加 入 していただきますよう 28 年 4 月 から 実 施 することとしました 問 6 公 共 工 事 の 3 月 1 日 ( 火 )HP 公 表 基 本 関 係 社 会 保 険 等 未 加 入 対 策 に 関 する 想 定 問 答 問 1 社 会 保 険 等 とは 何 か 社 会 保 険 ( 健 康 保 険 及 び 厚 生 年 金 保 険 )と 労 働 保 険 ( 雇 用 保 険 )を 指 します 問 2 どのような 場 合 でも 元 請 と 未 加 入 業 者 との 一 次 下 請 契 約 が 禁 止

More information

任意整理について | 多重債務Q&A | 公益財団法人 日本クレジットカウンセリング協会

任意整理について | 多重債務Q&A | 公益財団法人 日本クレジットカウンセリング協会 第 5 章 任 意 整 理 について Q25 任 意 整 理 のポイント 任 意 整 理 とはどういうことですか そのポイントを 教 えてください 1. 任 意 整 理 とは 任 意 整 理 とは 支 払 能 力 を 超 える 債 務 を 負 っている 債 務 者 について 支 払 能 力 に 応 じた 返 済 計 画 を 立 て その 返 済 計 画 にしたがって 個 々の 債 権 者 との 間

More information

1

1 精 華 町 個 人 情 報 保 護 条 例 改 正 に 向 けての 考 え 方 ( 案 ) 平 成 27 年 4 月 精 華 町 0 1 目 次 1 個 人 情 報 保 護 に 関 する 法 体 系 と 番 号 法 における 特 定 個 人 情 報 の 保 護 措 置... 1 2 番 号 法 と 精 華 町 個 人 情 報 保 護 条 例 における 個 人 情 報 の 定 義 上 の 差 異...

More information

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Ⅱ 国 地 方 公 共 団 体 公 共 公 益 法 人 等 の 消 費 税 Q&A ( 問 1) 免 税 期 間 における 起 債 の 償 還 元 金 に 充 てるための 補 助 金 等 の 使 途 の 特 定 Q 地 方 公 共 団 体 の 特 別 会 計 が 消 費 税 の 納 税 義 務 が 免 除 される 課 税 期 間

More information

2 県 公 立 高 校 の 合 格 者 は このように 決 まる (1) 選 抜 の 仕 組 み 選 抜 の 資 料 選 抜 の 資 料 は 主 に 下 記 の3つがあり 全 高 校 で 使 用 する 共 通 の ものと 高 校 ごとに 決 めるものとがあります 1 学 力 検 査 ( 国 語 数

2 県 公 立 高 校 の 合 格 者 は このように 決 まる (1) 選 抜 の 仕 組 み 選 抜 の 資 料 選 抜 の 資 料 は 主 に 下 記 の3つがあり 全 高 校 で 使 用 する 共 通 の ものと 高 校 ごとに 決 めるものとがあります 1 学 力 検 査 ( 国 語 数 2 県 公 立 高 校 の 合 格 者 は このように 決 まる (1) 選 抜 の 仕 組 み 選 抜 の 資 料 選 抜 の 資 料 は 主 に 下 記 の3つがあり 全 高 校 で 使 用 する 共 通 の ものと 高 校 ごとに 決 めるものとがあります 1 学 力 検 査 ( 国 語 数 学 社 会 理 科 英 語 の5 教 科 ) すべての 高 校 で 資 料 とする 2 調 査 書 (

More information

Microsoft PowerPoint - 報告書(概要).ppt

Microsoft PowerPoint - 報告書(概要).ppt 市 町 村 における 地 方 公 務 員 制 度 改 革 に 係 る 論 点 と 意 見 について ( 概 要 ) 神 奈 川 県 市 町 村 における 地 方 公 務 員 制 度 改 革 に 係 る 検 討 会 議 について 1 テーマ 地 方 公 務 員 制 度 改 革 ( 総 務 省 地 方 公 務 員 の 労 使 関 係 制 度 に 係 る 基 本 的 な 考 え 方 )の 課 題 の 整

More information

R4財務対応障害一覧

R4財務対応障害一覧 1 仕 訳 入 力 仕 訳 入 力 時 摘 要 欄 で. + Enter を 押 すと アプリケーションでエラーが 発 生 しまインデックスが 配 列 の 境 界 外 です が 出 る 場 合 がある 問 題 に 対 応 しま 2 仕 訳 入 力 仕 訳 入 力 主 科 目 と 補 助 科 目 を 固 定 にすると2 行 目 以 降 の 補 助 科 目 コピーが 動 作 しない 問 題 に 対 応

More information

Taro-2220(修正).jtd

Taro-2220(修正).jtd 株 式 会 社 ( 募 集 株 式 の 発 行 ) 株 式 会 社 変 更 登 記 申 請 書 1. 商 号 商 事 株 式 会 社 1. 本 店 県 市 町 丁 目 番 号 1. 登 記 の 事 由 募 集 株 式 発 行 ( 情 報 番 号 2220 全 25 頁 ) 1. 登 記 すべき 事 項 変 更 ( 注 ) 変 更 の 年 月 日 は, 払 込 期 日 又 は 払 込 期 間 の 末

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション インターネット 出 願 手 引 き (システムWAKABA 継 続 入 学 申 請 手 引 き) 目 次 1.システムWAKABAトップ 画 面 2 2. 学 生 種 選 択 画 面 3 3. 出 願 申 請 画 面 (1) 全 科 履 修 生 の 場 合 4 (2) 全 科 履 修 生 以 外 の 場 合 6 4.オンライン 授 業 8 5. 科 目 登 録 申 請 画 面 (1) 授 業 種 別

More information

<4D F736F F D2091E F18CB48D C481698E7B90DD8F9590AC89DB816A2E646F63>

<4D F736F F D2091E F18CB48D C481698E7B90DD8F9590AC89DB816A2E646F63> 平 成 18 年 7 月 独 立 行 政 法 人 国 立 大 学 財 務 経 営 センター 国 立 大 学 法 人 等 による 国 立 大 学 財 務 経 営 センターへの 土 地 譲 渡 収 入 の 一 部 納 付 の 仕 組 みについて 国 立 大 学 法 人 等 が 国 から 出 資 された 土 地 を 譲 渡 した 場 合 文 部 科 学 大 臣 が 定 める 基 準 に より 算 定 した

More information

<819A955D89BF92B28F91816989638BC690ED97AA8EBA81418FA48BC682CC8A8890AB89BB816A32322E786C7378>

<819A955D89BF92B28F91816989638BC690ED97AA8EBA81418FA48BC682CC8A8890AB89BB816A32322E786C7378> 平 成 27 年 度 施 策 評 価 調 書 施 策 の 名 称 等 整 理 番 号 22 評 価 担 当 課 営 業 戦 略 課 職 氏 名 施 策 名 ( 基 本 事 業 ) 商 業 の 活 性 化 総 合 計 画 の 位 置 づけ 基 本 目 主 要 施 策 4 想 像 力 と 活 力 にあふれたまちづくり 商 業 の 振 興 2 施 策 の 現 状 分 析 と 意 図 施 策 の 対 象 意

More information

為 が 行 われるおそれがある 場 合 に 都 道 府 県 公 安 委 員 会 がその 指 定 暴 力 団 等 を 特 定 抗 争 指 定 暴 力 団 等 として 指 定 し その 所 属 する 指 定 暴 力 団 員 が 警 戒 区 域 内 において 暴 力 団 の 事 務 所 を 新 たに 設

為 が 行 われるおそれがある 場 合 に 都 道 府 県 公 安 委 員 会 がその 指 定 暴 力 団 等 を 特 定 抗 争 指 定 暴 力 団 等 として 指 定 し その 所 属 する 指 定 暴 力 団 員 が 警 戒 区 域 内 において 暴 力 団 の 事 務 所 を 新 たに 設 暴 力 団 員 による 不 当 な 行 為 の 防 止 等 に 関 する 法 律 の 一 部 を 改 正 する 法 律 暴 力 団 員 による 不 当 な 行 為 の 防 止 等 に 関 する 法 律 例 規 整 備 * 暴 力 団 員 による 不 当 な 行 為 の 防 止 等 に 関 する 法 律 の 一 部 を 改 正 する 法 律 例 規 整 備 公 布 年 月 日 番 号 平 成 24 年

More information

(2) 広 島 国 際 学 院 大 学 ( 以 下 大 学 という ) (3) 広 島 国 際 学 院 大 学 自 動 車 短 期 大 学 部 ( 以 下 短 大 という ) (4) 広 島 国 際 学 院 高 等 学 校 ( 以 下 高 校 という ) ( 学 納 金 の 種 類 ) 第 3 条

(2) 広 島 国 際 学 院 大 学 ( 以 下 大 学 という ) (3) 広 島 国 際 学 院 大 学 自 動 車 短 期 大 学 部 ( 以 下 短 大 という ) (4) 広 島 国 際 学 院 高 等 学 校 ( 以 下 高 校 という ) ( 学 納 金 の 種 類 ) 第 3 条 学 生 生 徒 等 の 納 入 金 に 関 する 規 則 平 成 15 年 12 月 16 日 規 則 第 19 号 沿 革 1 平 成 17 年 5 月 17 日 改 正 2 平 成 17 年 10 月 3 日 改 正 3 平 成 18 年 1 月 25 日 改 正 5 平 成 21 年 9 月 16 日 改 正 7 平 成 22 年 2 月 12 日 改 正 9 平 成 23 年 12 月 6

More information

4 承 認 コミュニティ 組 織 は 市 長 若 しくはその 委 任 を 受 けた 者 又 は 監 査 委 員 の 監 査 に 応 じなければ ならない ( 状 況 報 告 ) 第 7 条 承 認 コミュニティ 組 織 は 市 長 が 必 要 と 認 めるときは 交 付 金 事 業 の 遂 行 の

4 承 認 コミュニティ 組 織 は 市 長 若 しくはその 委 任 を 受 けた 者 又 は 監 査 委 員 の 監 査 に 応 じなければ ならない ( 状 況 報 告 ) 第 7 条 承 認 コミュニティ 組 織 は 市 長 が 必 要 と 認 めるときは 交 付 金 事 業 の 遂 行 の 地 域 づくり 一 括 交 付 金 の 交 付 に 関 する 要 綱 ( 趣 旨 ) 第 1 条 この 要 綱 は 川 西 市 地 域 分 権 の 推 進 に 関 する 条 例 ( 平 成 26 年 川 西 市 条 例 第 10 号 以 下 条 例 という ) 第 14 条 の 規 定 に 基 づく 地 域 づくり 一 括 交 付 金 ( 以 下 交 付 金 という )の 交 付 に 関 し 必 要

More information

「1 所得税及び復興特別所得税の確定申告書データをお持ちの方」からの更正の請求書・修正申告書作成編

「1  所得税及び復興特別所得税の確定申告書データをお持ちの方」からの更正の請求書・修正申告書作成編 既 に 提 出 した 所 得 税 及 び 復 興 特 別 所 得 税 の 確 定 申 告 の 申 告 額 に 誤 り があった 場 合 で 納 める 税 金 が 多 すぎた 場 合 や 還 付 される 税 金 が 少 なす ぎた 場 合 に 提 出 する 更 正 の 請 求 書 や 申 告 をした 税 額 等 が 実 際 より 少 な すぎた 場 合 や 還 付 される 税 金 が 多 すぎた 場

More information

1-1-2. 一 覧 表 ( 専 従 者 用 ) YES NOチャート( 専 従 月 額 単 価 用 ) (P.4)を 参 考 にしてください < 直 接 雇 用 者 > 一 覧 表 ( 専 従 者 用 )の 単 価 は 委 託 期 間 中 に 継 続 して 半 年 以 上 当 該 AMED 事 業

1-1-2. 一 覧 表 ( 専 従 者 用 ) YES NOチャート( 専 従 月 額 単 価 用 ) (P.4)を 参 考 にしてください < 直 接 雇 用 者 > 一 覧 表 ( 専 従 者 用 )の 単 価 は 委 託 期 間 中 に 継 続 して 半 年 以 上 当 該 AMED 事 業 について 別 紙 1-1. の 基 本 的 な 考 え 方 人 件 費 は 原 則 として 研 究 員 が 委 託 業 務 に 直 接 従 事 する 時 間 数 に 健 康 保 険 等 級 ( 健 保 等 級 ) 1 に 基 づく 表 の 単 価 を 乗 じて 算 出 します 研 究 員 の 区 分 に 基 づき 以 下 の2 種 類 の 一 覧 表 から を 決 定 してください 健 保 等 級

More information

<4D F736F F D208ED089EF95DB8CAF89C193FC8FF38BB CC8EC091D492B28DB88C8B89CA82C982C282A282C42E646F63>

<4D F736F F D208ED089EF95DB8CAF89C193FC8FF38BB CC8EC091D492B28DB88C8B89CA82C982C282A282C42E646F63> 社 会 保 険 加 入 状 況 等 の 実 態 調 査 結 果 平 成 27 年 6 月 18 日 一 般 社 団 法 人 日 本 電 設 工 業 協 会 社 会 保 険 加 入 状 況 等 の 実 態 調 査 結 果 について 1. 調 査 の 目 的 社 会 保 険 加 入 促 進 計 画 の 計 画 期 間 (H24 年 度 ~H28 年 度 までの5 年 間 )の 中 間 時 点 として 1

More information

鳥 取 国 民 年 金 事 案 177 第 1 委 員 会 の 結 論 申 立 人 の 昭 和 37 年 6 月 から 38 年 3 月 までの 国 民 年 金 保 険 料 については 納 付 していたものと 認 められることから 納 付 記 録 を 訂 正 することが 必 要 である 第 2 申

鳥 取 国 民 年 金 事 案 177 第 1 委 員 会 の 結 論 申 立 人 の 昭 和 37 年 6 月 から 38 年 3 月 までの 国 民 年 金 保 険 料 については 納 付 していたものと 認 められることから 納 付 記 録 を 訂 正 することが 必 要 である 第 2 申 ( 平 成 21 年 6 月 17 日 報 道 資 料 抜 粋 ) 年 金 記 録 に 係 る 苦 情 のあっせん 等 について 年 金 記 録 確 認 鳥 取 地 方 第 三 者 委 員 会 分 1. 今 回 のあっせん 等 の 概 要 (1) 年 金 記 録 の 訂 正 の 必 要 があるとのあっせんを 実 施 するもの 1 件 国 民 年 金 関 係 1 件 (2) 年 金 記 録 の 訂 正

More information

2. 会 計 規 程 の 業 務 (1) 規 程 と 実 際 の 業 務 の 調 査 規 程 や 運 用 方 針 に 規 定 されている 業 務 ( 帳 票 )が 実 際 に 行 われているか( 作 成 されている か)どうかについて 調 べてみた 以 下 の 表 は 規 程 の 条 項 とそこに

2. 会 計 規 程 の 業 務 (1) 規 程 と 実 際 の 業 務 の 調 査 規 程 や 運 用 方 針 に 規 定 されている 業 務 ( 帳 票 )が 実 際 に 行 われているか( 作 成 されている か)どうかについて 調 べてみた 以 下 の 表 は 規 程 の 条 項 とそこに 第 7 章 会 計 規 程 1. 会 計 規 程 の 概 要 (1) 規 程 及 び 目 的 平 成 18 年 度 に 病 院 事 業 管 理 者 を 設 置 して 札 幌 市 病 院 局 会 計 規 程 ( 平 成 18 年 札 幌 市 病 院 局 規 程 第 37 号 以 下 この 章 で 規 程 という )を 定 め これに 則 って 会 計 処 理 が 行 わ れていなお 規 程 の 具 体

More information

2. ど の 様 な 経 緯 で 発 覚 し た の か ま た 遡 っ た の を 昨 年 4 月 ま で と し た の は 何 故 か 明 ら か に す る こ と 回 答 3 月 17 日 に 実 施 し た ダ イ ヤ 改 正 で 静 岡 車 両 区 の 構 内 運 転 が 静 岡 運

2. ど の 様 な 経 緯 で 発 覚 し た の か ま た 遡 っ た の を 昨 年 4 月 ま で と し た の は 何 故 か 明 ら か に す る こ と 回 答 3 月 17 日 に 実 施 し た ダ イ ヤ 改 正 で 静 岡 車 両 区 の 構 内 運 転 が 静 岡 運 地 本 業 務 ニ ュ ー ス J R 東 海 労 静 岡 地 方 本 部 NO.1 8 2 0 1 2 年 6 月 1 9 日 発 行 者 : JR 東 海 労 静 岡 地 方 本 部 山 本 繁 明 申 6 号 に 関 する 幹 事 間 折 衝 を 開 催!! 6 月 15 日 地 本 は 静 岡 車 両 区 に お け る 構 内 運 転 士 に 対 す る 誤 支 給 及 び 戻 入 に つ

More information

( 運 用 制 限 ) 第 5 条 労 働 基 準 局 は 本 システムの 維 持 補 修 の 必 要 があるとき 天 災 地 変 その 他 の 事 由 によりシステムに 障 害 又 は 遅 延 の 生 じたとき その 他 理 由 の 如 何 を 問 わず その 裁 量 により システム 利 用 者

( 運 用 制 限 ) 第 5 条 労 働 基 準 局 は 本 システムの 維 持 補 修 の 必 要 があるとき 天 災 地 変 その 他 の 事 由 によりシステムに 障 害 又 は 遅 延 の 生 じたとき その 他 理 由 の 如 何 を 問 わず その 裁 量 により システム 利 用 者 労 災 レセプト 電 算 処 理 システム 利 用 規 約 ( 目 的 及 び 定 義 ) 第 1 条 本 規 約 は 厚 生 労 働 省 労 働 基 準 局 ( 以 下 労 働 基 準 局 という )が 運 営 する 労 災 レセプト 電 算 処 理 システムを 利 用 する 場 合 に 必 要 な 事 項 を 定 めるものです 2 本 規 約 において 使 用 する 用 語 の 意 義 は 次

More information

Microsoft Word - 佐野市生活排水処理構想(案).doc

Microsoft Word - 佐野市生活排水処理構想(案).doc 佐 野 市 生 活 排 水 処 理 構 想 ( 案 ) 平 成 27 年 12 月 佐 野 市 目 次 1. 生 活 排 水 処 理 構 想 について 1.1 生 活 排 水 処 理 構 想 とは P.1 1.2 生 活 排 水 処 理 施 設 の 種 類 P.1 2. 佐 野 市 の 現 状 と 課 題 2.1 整 備 状 況 P.2 2.2 主 な 汚 水 処 理 施 設 P.2 2.3 生 活

More information

特別徴収封入送付作業について

特別徴収封入送付作業について 特 別 徴 収 の 事 務 概 要 ( 説 明 資 料 ) 新 居 浜 市 役 所 総 務 部 市 民 税 課 電 話 (0897)65-1224( 直 通 ) 特 別 徴 収 について 所 得 税 の 源 泉 徴 収 義 務 者 は 市 の 指 定 により 市 県 民 税 の 特 別 徴 収 しなければならないと 義 務 付 け られています ( 地 方 税 法 第 321 条 の 4 新 居 浜

More information

Taro-1-14A記載例.jtd

Taro-1-14A記載例.jtd 募 集 株 式 の 発 行 ( 非 公 開 会 社 のうち 非 取 締 役 会 設 置 会 社 ) 受 付 番 号 票 貼 付 欄 株 式 会 社 変 更 登 記 申 請 書 1. 会 社 法 人 等 番 号 0000-00 - 000000 分 かる 場 合 に 記 載 してください 1. 商 号 1. 本 店 1. 登 記 の 事 由 商 事 株 式 会 社 県 市 町 丁 目 番 号 募 集

More information

養 老 保 険 の 減 額 払 済 保 険 への 変 更 1. 設 例 会 社 が 役 員 を 被 保 険 者 とし 死 亡 保 険 金 及 び 満 期 保 険 金 のいずれも 会 社 を 受 取 人 とする 養 老 保 険 に 加 入 してい る 場 合 を 解 説 します 資 金 繰 りの 都

養 老 保 険 の 減 額 払 済 保 険 への 変 更 1. 設 例 会 社 が 役 員 を 被 保 険 者 とし 死 亡 保 険 金 及 び 満 期 保 険 金 のいずれも 会 社 を 受 取 人 とする 養 老 保 険 に 加 入 してい る 場 合 を 解 説 します 資 金 繰 りの 都 平 成 22 年 4 月 1 日 現 在 の 法 令 等 に 準 拠 Up Newsletter 養 老 保 険 の 減 額 逓 増 定 期 保 険 の 取 扱 い 変 更 介 護 費 用 保 険 の 導 入 企 業 の 保 険 のポイント http://www.up-firm.com 1 養 老 保 険 の 減 額 払 済 保 険 への 変 更 1. 設 例 会 社 が 役 員 を 被 保 険 者

More information

スライド 1

スライド 1 公 的 年 金 制 度 の 健 全 性 及 び 信 頼 性 の 確 保 のための 厚 生 年 金 保 険 法 等 の 一 部 を 改 正 する 法 律 について 厚 生 労 働 省 年 金 局 公 的 年 金 制 度 の 健 全 性 及 び 信 頼 性 の 確 保 のための 厚 生 年 金 保 険 法 等 の 一 部 を 改 正 する 法 律 ( 平 成 25 年 法 律 第 63 号 )の 概 要

More information

通 知 カード と 個 人 番 号 カード の 違 い 2 通 知 カード ( 紙 )/H27.10 個 人 番 号 カード (ICカード)/H28.1 様 式 (おもて) (うら) 作 成 交 付 主 な 記 載 事 項 全 国 ( 外 国 人 含 む)に 郵 送 で 配 布 希 望 者 に 交

通 知 カード と 個 人 番 号 カード の 違 い 2 通 知 カード ( 紙 )/H27.10 個 人 番 号 カード (ICカード)/H28.1 様 式 (おもて) (うら) 作 成 交 付 主 な 記 載 事 項 全 国 ( 外 国 人 含 む)に 郵 送 で 配 布 希 望 者 に 交 1 マイナンバー 制 度 の 導 について( 案 ) 平 成 27 年 7 22 日 部 会 議 資 料 総 務 部 ( 政 管 理 課 情 報 政 策 課 庶 務 課 ) 市 活 部 ( 市 窓 課 籍 住 記 録 課 ) 通 知 カード と 個 人 番 号 カード の 違 い 2 通 知 カード ( 紙 )/H27.10 個 人 番 号 カード (ICカード)/H28.1 様 式 (おもて) (うら)

More information

2 1.ヒアリング 対 象 (1) 対 象 範 囲 分 類 年 金 医 療 保 険 雇 用 保 険 税 備 考 厚 生 年 金 の 資 格 喪 失 国 民 年 金 の 加 入 老 齢 給 付 裁 定 請 求 など 健 康 保 険 の 資 格 喪 失 国 民 健 康 保 険 の 加 入 健 康 保 険

2 1.ヒアリング 対 象 (1) 対 象 範 囲 分 類 年 金 医 療 保 険 雇 用 保 険 税 備 考 厚 生 年 金 の 資 格 喪 失 国 民 年 金 の 加 入 老 齢 給 付 裁 定 請 求 など 健 康 保 険 の 資 格 喪 失 国 民 健 康 保 険 の 加 入 健 康 保 険 1 参 考 資 料 6 退 職 関 連 手 続 の 現 行 業 務 分 析 1. ヒアリング 対 象 2. ワンストップ 化 に 向 けて 検 討 すべき 課 題 ( 参 考 )ヒアリング 結 果 分 析 2 1.ヒアリング 対 象 (1) 対 象 範 囲 分 類 年 金 医 療 保 険 雇 用 保 険 税 備 考 厚 生 年 金 の 資 格 喪 失 国 民 年 金 の 加 入 老 齢 給 付 裁

More information

続 に 基 づく 一 般 競 争 ( 指 名 競 争 ) 参 加 資 格 の 再 認 定 を 受 けていること ) c) 会 社 更 生 法 に 基 づき 更 生 手 続 開 始 の 申 立 てがなされている 者 又 は 民 事 再 生 法 に 基 づき 再 生 手 続 開 始 の 申 立 てがなさ

続 に 基 づく 一 般 競 争 ( 指 名 競 争 ) 参 加 資 格 の 再 認 定 を 受 けていること ) c) 会 社 更 生 法 に 基 づき 更 生 手 続 開 始 の 申 立 てがなされている 者 又 は 民 事 再 生 法 に 基 づき 再 生 手 続 開 始 の 申 立 てがなさ 簡 易 公 募 型 競 争 入 札 方 式 ( 総 合 評 価 落 札 方 式 )に 係 る 手 続 開 始 の 公 示 次 のとおり 指 名 競 争 入 札 参 加 者 の 選 定 の 手 続 を 開 始 します 平 成 28 年 9 月 20 日 分 任 支 出 負 担 行 為 担 当 官 東 北 地 方 整 備 局 秋 田 河 川 国 道 事 務 所 長 渡 邊 政 義 1. 業 務 概 要

More information

学校教育法等の一部を改正する法律の施行に伴う文部科学省関係省令の整備に関する省令等について(通知)

学校教育法等の一部を改正する法律の施行に伴う文部科学省関係省令の整備に関する省令等について(通知) 27 文 科 初 第 1593 号 平 成 28 年 3 月 22 日 各 都 道 府 県 知 事 各 都 道 府 県 教 育 委 員 会 各 指 定 都 市 教 育 委 員 会 殿 附 属 学 校 を 置 く 各 国 立 大 学 法 人 学 長 構 造 改 革 特 別 区 域 法 第 12 条 第 1 項 の 認 定 を 受 けた 地 方 公 共 団 体 の 長 文 部 科 学 省 初 等 中 等

More information

高松市緊急輸送道路沿道建築物耐震改修等事業補助金交付要綱(案)

高松市緊急輸送道路沿道建築物耐震改修等事業補助金交付要綱(案) 高 松 市 民 間 建 築 物 耐 震 改 修 等 事 業 補 助 金 交 付 要 綱 ( 目 的 ) 第 1 条 この 要 綱 は 耐 震 改 修 等 事 業 を 実 施 す る 要 緊 急 安 全 確 認 大 規 模 建 築 物 又 は 要 安 全 確 認 計 画 記 載 建 築 物 の 所 有 者 ( 以 下 所 有 者 という )に 対 し 予 算 の 範 囲 内 に お い て 高 松 市

More information

慶應義塾利益相反対処規程

慶應義塾利益相反対処規程 慶 應 義 塾 利 益 相 反 マネジメント 内 規 平 成 17 年 12 月 6 日 制 定 平 成 23 年 4 月 1 日 施 行 平 成 26 年 4 月 1 日 改 正 平 成 27 年 10 月 30 日 改 正 ( 目 的 ) 第 1 条 慶 應 義 塾 利 益 相 反 マネジメント 内 規 ( 以 下 本 内 規 という )は, 慶 應 義 塾 利 益 相 反 マネジメント ポリシー(

More information

の 購 入 費 又 は 賃 借 料 (2) 専 用 ポール 等 機 器 の 設 置 工 事 費 (3) ケーブル 設 置 工 事 費 (4) 防 犯 カメラの 設 置 を 示 す 看 板 等 の 設 置 費 (5) その 他 設 置 に 必 要 な 経 費 ( 補 助 金 の 額 ) 第 6 条 補

の 購 入 費 又 は 賃 借 料 (2) 専 用 ポール 等 機 器 の 設 置 工 事 費 (3) ケーブル 設 置 工 事 費 (4) 防 犯 カメラの 設 置 を 示 す 看 板 等 の 設 置 費 (5) その 他 設 置 に 必 要 な 経 費 ( 補 助 金 の 額 ) 第 6 条 補 美 作 市 防 犯 カメラ 設 置 支 援 事 業 補 助 金 交 付 要 綱 ( 趣 旨 ) 第 1 条 この 告 示 は 地 域 の 防 犯 活 動 を 推 進 し 安 全 安 心 のまちづくりの 実 現 を 図 るため 犯 罪 等 の 防 止 を 目 的 に 防 犯 カメラの 設 置 を 行 う 住 民 団 体 に 対 し 予 算 の 範 囲 内 において その 設 置 に 要 する 経 費

More information

<4D6963726F736F667420506F776572506F696E74202D20303282D382E982B382C68AF1958D8BE090A7937882C98AD682B782E9834183938350815B83678C8B89CA81698CF6955C9770816A2E70707478>

<4D6963726F736F667420506F776572506F696E74202D20303282D382E982B382C68AF1958D8BE090A7937882C98AD682B782E9834183938350815B83678C8B89CA81698CF6955C9770816A2E70707478> ふるさと 納 税 に 関 する 調 査 結 果 ( 概 要 ) ( 対 象 団 体 : 都 道 府 県 47 団 体 市 区 町 村 1,742 団 体 ) 総 務 省 自 治 税 務 局 1 寄 附 金 の 納 付 手 続 きについて ふるさと 納 税 に 関 する 調 査 結 果 ( 概 要 ) 寄 附 手 続 きに 係 る 改 善 すべき 点 としては クレジットカード 決 済 コンビニ 納

More information

<4D6963726F736F667420576F7264202D2030322090AC90D1955D92E8977697CC82CC895E9770816990DD8C76939995D2816A2E646F63>

<4D6963726F736F667420576F7264202D2030322090AC90D1955D92E8977697CC82CC895E9770816990DD8C76939995D2816A2E646F63> 土 木 部 建 築 設 計 及 び 工 事 監 理 等 委 託 業 務 成 績 評 定 要 領 の 運 用 ( 建 築 設 計 等 委 託 業 務 編 ) ( 評 定 の 方 法 ) 第 1 評 定 者 は 評 定 を 行 おうとする 業 務 ( 以 下 対 象 業 務 という )について 別 添 の 採 点 表 により 評 定 を 行 うものとし 評 価 項 目 評 価 の 視 点 及 び 評 価

More information

基 準 地 価 格 3 年 に1 度 審 議 直 近 ではH23 年 12 月 に 審 議 土 地 評 価 替 えの 流 れと 固 定 資 産 評 価 審 議 会 基 準 地 とは 土 地 評 価 の 水 準 と 市 町 村 間 の 均 衡 を 確 保 するための 指 標 となるものであり 各 市

基 準 地 価 格 3 年 に1 度 審 議 直 近 ではH23 年 12 月 に 審 議 土 地 評 価 替 えの 流 れと 固 定 資 産 評 価 審 議 会 基 準 地 とは 土 地 評 価 の 水 準 と 市 町 村 間 の 均 衡 を 確 保 するための 指 標 となるものであり 各 市 資 料 1 山 梨 県 固 定 資 産 評 価 審 議 会 の 概 要 1 設 置 の 根 拠 地 方 税 法 第 401 条 の2 山 梨 県 附 属 機 関 の 設 置 に 関 する 条 例 2 設 置 の 趣 旨 固 定 資 産 評 価 の 適 正 均 衡 の 確 保 3 組 織 委 員 11 名 ( 国 及 び 市 町 村 の 職 員 並 びに 学 識 経 験 者 ) 4 任 期 2 年 (

More information

(2)大学・学部・研究科等の理念・目的が、大学構成員(教職員および学生)に周知され、社会に公表されているか

(2)大学・学部・研究科等の理念・目的が、大学構成員(教職員および学生)に周知され、社会に公表されているか 平 成 23 年 度 自 己 報 告 書 1 理 念 目 的 (1) 大 学 学 部 研 究 科 等 の 理 念 目 的 は 適 切 に 設 定 されているか 平 成 19 年 6 月 に の 目 標 として 大 学 の 発 展 に 貢 献 する 力 のある 組 織 とい う 共 通 の 目 標 を 掲 げ この 目 標 を 常 に 念 頭 に 置 きながら 日 々の 業 務 に 当 たっている さらに

More information

福 岡 厚 生 年 金 事 案 4486 第 1 委 員 会 の 結 論 申 立 人 の 申 立 期 間 については その 主 張 する 標 準 報 酬 月 額 に 基 づく 厚 生 年 金 保 険 料 を 事 業 主 により 給 与 から 控 除 されていたことが 認 められることから 申 立 期

福 岡 厚 生 年 金 事 案 4486 第 1 委 員 会 の 結 論 申 立 人 の 申 立 期 間 については その 主 張 する 標 準 報 酬 月 額 に 基 づく 厚 生 年 金 保 険 料 を 事 業 主 により 給 与 から 控 除 されていたことが 認 められることから 申 立 期 ( 平 成 24 年 9 月 20 日 報 道 資 料 抜 粋 ) 年 金 記 録 に 係 る 苦 情 のあっせん 等 について 年 金 記 録 確 認 福 岡 地 方 第 三 者 委 員 会 分 1. 今 回 のあっせん 等 の 概 要 (1) 年 金 記 録 の 訂 正 の 必 要 があるとのあっせんを 実 施 するもの 2 件 厚 生 年 金 関 係 2 件 (2) 年 金 記 録 の 訂 正

More information

https://www.takara-dic-net.jp/xeditor_ne/xeditor_web/html_gene.

https://www.takara-dic-net.jp/xeditor_ne/xeditor_web/html_gene. 平 成 23 年 3 月 期 第 1 四 半 期 決 算 短 信 日 本 基 準 ( 連 結 ) 平 成 22 年 8 月 11 日 上 場 会 社 名 松 井 建 設 株 式 会 社 上 場 取 引 所 東 コ ー ド 番 号 1810 URL http://www.matsui-ken.co.jp/ 代 表 者 ( 役 職 名 ) 取 締 役 社 長 ( 氏 名 ) 松 井 隆 弘 ( 役 職

More information

資 格 給 付 関 係 ( 問 1) 外 国 人 Aさん(76 歳 )は 在 留 期 間 が3ヶ 月 であることから 長 寿 医 療 の 被 保 険 者 ではない が 在 留 資 格 の 変 更 又 は 在 留 期 間 の 伸 長 により 長 寿 医 療 の 適 用 対 象 となる 場 合 には 国

資 格 給 付 関 係 ( 問 1) 外 国 人 Aさん(76 歳 )は 在 留 期 間 が3ヶ 月 であることから 長 寿 医 療 の 被 保 険 者 ではない が 在 留 資 格 の 変 更 又 は 在 留 期 間 の 伸 長 により 長 寿 医 療 の 適 用 対 象 となる 場 合 には 国 高 齢 者 医 療 制 度 に 関 する Q&A ( 平 成 21 年 2 月 分 ) 今 後 逐 次 加 除 修 正 を 行 う 予 定 資 格 給 付 関 係 ( 問 1) 外 国 人 Aさん(76 歳 )は 在 留 期 間 が3ヶ 月 であることから 長 寿 医 療 の 被 保 険 者 ではない が 在 留 資 格 の 変 更 又 は 在 留 期 間 の 伸 長 により 長 寿 医 療 の 適

More information

別 紙 第 号 高 知 県 立 学 校 授 業 料 等 徴 収 条 例 の 一 部 を 改 正 する 条 例 議 案 高 知 県 立 学 校 授 業 料 等 徴 収 条 例 の 一 部 を 改 正 する 条 例 を 次 のように 定 める 平 成 26 年 2 月 日 提 出 高 知 県 知 事 尾

別 紙 第 号 高 知 県 立 学 校 授 業 料 等 徴 収 条 例 の 一 部 を 改 正 する 条 例 議 案 高 知 県 立 学 校 授 業 料 等 徴 収 条 例 の 一 部 を 改 正 する 条 例 を 次 のように 定 める 平 成 26 年 2 月 日 提 出 高 知 県 知 事 尾 付 議 第 3 号 高 知 県 立 学 校 授 業 料 等 徴 収 条 例 の 一 部 を 改 正 する 条 例 議 案 に 係 る 意 見 聴 取 に 関 する 議 案 平 成 26 年 2 月 高 知 県 議 会 定 例 会 提 出 予 定 の 条 例 議 案 に 係 る 地 方 教 育 行 政 の 組 織 及 び 運 営 に 関 する 法 律 ( 昭 和 31 年 法 律 第 162 号 )

More information

・モニター広告運営事業仕様書

・モニター広告運営事業仕様書 秋 田 市 新 庁 舎 動 画 広 告 放 映 事 業 仕 様 書 1 目 的 多 く の 市 民 の 目 に 触 れ る 市 役 所 の 特 性 を 活 か し 映 像 や 音 声 を 活 用 し た モ ニ タ ー に よ る 動 画 広 告 を 新 庁 舎 内 に 導 入 し 新 庁 舎 の 主 要 機 能 の 一 つ で あ る 情 報 発 信 拠 点 と し て の 役 割 を 果 た す

More information

注 雇 促 進 税 制 と 本 制 度 のどちらかを 利 する 可 能 性 があるが あらかじめどちらの 制 度 を 利 するか 判 断 できない という 場 合 雇 促 進 税 制 の 事 前 届 出 ( 雇 促 進 計 画 の 提 出 )をした 上 で 申 告 の 際 にどちらを 利 するかご

注 雇 促 進 税 制 と 本 制 度 のどちらかを 利 する 可 能 性 があるが あらかじめどちらの 制 度 を 利 するか 判 断 できない という 場 合 雇 促 進 税 制 の 事 前 届 出 ( 雇 促 進 計 画 の 提 出 )をした 上 で 申 告 の 際 にどちらを 利 するかご Q1. 所 得 拡 促 進 税 制 とはどのような 制 度 か A1. 平 成 25 年 4 1 から 平 成 28 年 3 31 までの 期 間 内 に 開 始 する 各 事 業 年 度 ( 個 人 事 業 主 の 場 合 は 平 成 26 年 1 1 から 平 成 28 年 12 月 31 までの 各 年 以 下 適 事 業 年 度 といいます )において 国 内 雇 用 者 に 対 して 給

More information

< 現 在 の 我 が 国 D&O 保 険 の 基 本 的 な 設 計 (イメージ)> < 一 般 的 な 補 償 の 範 囲 の 概 要 > 請 求 の 形 態 会 社 の 役 員 会 社 による 請 求 に 対 する 損 免 責 事 由 の 場 合 に 害 賠 償 請 求 は 補 償 されず(

< 現 在 の 我 が 国 D&O 保 険 の 基 本 的 な 設 計 (イメージ)> < 一 般 的 な 補 償 の 範 囲 の 概 要 > 請 求 の 形 態 会 社 の 役 員 会 社 による 請 求 に 対 する 損 免 責 事 由 の 場 合 に 害 賠 償 請 求 は 補 償 されず( 別 紙 2 会 社 役 員 賠 償 責 任 保 険 (D&O 保 険 )の 実 務 上 の 検 討 ポイント 第 1 会 社 役 員 賠 償 責 任 保 険 (D&O 保 険 )の 概 要 会 社 役 員 賠 償 責 任 保 険 ( 以 下 D&O 保 険 ) とは 保 険 契 約 者 である 会 社 と 保 険 者 である 保 険 会 社 の 契 約 により 被 保 険 者 とされている 役 員

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 1 履 修 履 歴 データベースの 仕 組 み 学 生 が 履 修 履 歴 を 登 録 して 企 業 へデータを 送 信 すると 企 業 担 当 者 が 履 修 履 歴 データを 見 られるようになります 不 特 定 の 企 業 に 履 修 履 歴 データが 閲 覧 されるわけではありません < 基 本 的 な 流 れ> A 社 データ ベース 応 募 企 業 へ データを 送 信 学 生 A 専

More information

国立研究開発法人土木研究所の役職員の報酬・給与等について

国立研究開発法人土木研究所の役職員の報酬・給与等について 様 式 1 公 表 されるべき 事 項 国 立 研 究 開 発 法 人 土 木 研 究 所 の 役 職 員 の 報 酬 給 与 等 について 別 添 Ⅰ 役 員 報 酬 等 について 1 役 員 報 酬 についての 基 本 方 針 に 関 する 事 項 1 役 員 報 酬 の 支 給 水 準 の 設 定 についての 考 え 方 当 研 究 所 は 土 木 技 術 に 関 する 研 究 開 発 技 術

More information

<4D6963726F736F667420576F7264202D208E52979C8CA78E598BC68F5790CF91A390698F9590AC8BE08CF0957497768D6A2E646F6378>

<4D6963726F736F667420576F7264202D208E52979C8CA78E598BC68F5790CF91A390698F9590AC8BE08CF0957497768D6A2E646F6378> 山 梨 県 産 業 集 積 促 進 助 成 金 交 付 要 綱 ( 通 則 ) 第 1 条 山 梨 県 産 業 集 積 促 進 助 成 金 ( 以 下 助 成 金 という )の 交 付 については 山 梨 県 補 助 金 等 交 付 規 則 ( 昭 和 36 年 山 梨 県 規 則 第 25 号 以 下 規 則 という )に 定 め るところによるほか この 要 綱 に 定 めるところによる ( 目

More information

自動継続自由金利型定期預金(M型)規定

自動継続自由金利型定期預金(M型)規定 1.( 自 動 継 続 ) (1) 自 動 継 続 自 由 金 利 型 定 期 預 金 ( 以 下 この 預 金 といいます )は 通 帳 記 載 の 満 期 日 に 前 回 と 同 一 期 間 の 自 由 金 利 型 定 期 預 金 に 自 動 的 に 継 続 します 継 続 された 預 金 についても 同 様 とします (2) この 預 金 の 継 続 後 の 利 率 は 継 続 日 ( 継 続

More information

Microsoft Word - 全国エリアマネジメントネットワーク規約.docx

Microsoft Word - 全国エリアマネジメントネットワーク規約.docx 全 国 エリアマネジメントネットワーク 規 約 第 1 章 総 則 ( 名 称 ) 第 1 条 この 会 は 全 国 エリアマネジメントネットワーク( 以 下 本 会 という )と 称 する ( 目 的 ) 第 2 条 本 会 は 全 国 のエリアマネジメント 組 織 による 連 携 協 議 の 場 を 提 供 し エリアマネジメン トに 係 る 政 策 提 案 情 報 共 有 及 び 普 及 啓

More information

小 売 電 気 の 登 録 数 の 推 移 昨 年 8 月 の 前 登 録 申 請 の 受 付 開 始 以 降 小 売 電 気 の 登 録 申 請 は 着 実 に 増 加 しており これまでに310 件 を 登 録 (6 月 30 日 時 点 ) 本 年 4 月 の 全 面 自 由 化 以 降 申

小 売 電 気 の 登 録 数 の 推 移 昨 年 8 月 の 前 登 録 申 請 の 受 付 開 始 以 降 小 売 電 気 の 登 録 申 請 は 着 実 に 増 加 しており これまでに310 件 を 登 録 (6 月 30 日 時 点 ) 本 年 4 月 の 全 面 自 由 化 以 降 申 資 料 3-1 小 売 全 面 自 由 化 に 関 する 進 捗 状 況 平 成 28 年 7 月 1 日 資 源 エネルギー 庁 小 売 電 気 の 登 録 数 の 推 移 昨 年 8 月 の 前 登 録 申 請 の 受 付 開 始 以 降 小 売 電 気 の 登 録 申 請 は 着 実 に 増 加 しており これまでに310 件 を 登 録 (6 月 30 日 時 点 ) 本 年 4 月 の 全

More information

検 討 検 討 の 進 め 方 検 討 状 況 簡 易 収 支 の 世 帯 からサンプリング 世 帯 名 作 成 事 務 の 廃 止 4 5 必 要 な 世 帯 数 の 確 保 が 可 能 か 簡 易 収 支 を 実 施 している 民 間 事 業 者 との 連 絡 等 に 伴 う 事 務 の 複 雑

検 討 検 討 の 進 め 方 検 討 状 況 簡 易 収 支 の 世 帯 からサンプリング 世 帯 名 作 成 事 務 の 廃 止 4 5 必 要 な 世 帯 数 の 確 保 が 可 能 か 簡 易 収 支 を 実 施 している 民 間 事 業 者 との 連 絡 等 に 伴 う 事 務 の 複 雑 等 の 当 初 見 直 し 案 の 検 討 状 況 について 資 料 1-1 項 目 名 検 討 検 討 の 進 め 方 検 討 状 況 都 道 府 県 担 当 者 との 意 見 交 換 では 結 果 精 度 の 低 下 に 伴 い 結 果 が 活 用 されなくなった 場 合 の 員 のモチベーション 低 下 の 可 能 性 や 員 の 配 置 換 え 等 についての 考 慮 が 必 要 との 意

More information

平成21年9月29日

平成21年9月29日 新 潟 県 介 護 職 員 処 遇 改 善 補 助 金 Q&A 平 成 22 年 4 月 新 潟 県 高 齢 福 祉 保 健 課 ( 問 1) 国 の 介 護 職 員 処 遇 改 善 交 付 金 事 業 実 施 要 領 では 交 付 金 とされているが 新 潟 県 介 護 職 員 処 遇 改 善 補 助 金 では 補 助 金 と 名 称 が 異 なる 理 由 はなにか また 承 認 申 請 書 等

More information

平成27年度大学改革推進等補助金(大学改革推進事業)交付申請書等作成・提出要領

平成27年度大学改革推進等補助金(大学改革推進事業)交付申請書等作成・提出要領 平 成 7 年 度 大 学 改 革 推 進 等 補 助 金 ( 大 学 改 革 推 進 事 業 ) 交 付 申 請 書 等 作 成 提 出 要 領 交 付 申 請 等 に 当 たっては 大 学 改 革 推 進 等 補 助 金 ( 大 学 改 革 推 進 事 業 ) 取 扱 要 領 ( 以 下 取 扱 要 領 という ) も 参 照 の 上 以 下 の 関 係 書 類 を 作 成 し 各 大 学 短

More information

< 目 次 > 8. 雇 用 保 険 高 年 齢 雇 用 継 続 給 付 27 ( 育 児 休 業 給 付 介 護 休 業 給 付 ) 8.1 高 年 齢 雇 用 継 続 給 付 画 面 のマイナンバー 設 定 27 8.2 高 年 齢 雇 用 継 続 給 付 の 電 子 申 請 28 8.3 高

< 目 次 > 8. 雇 用 保 険 高 年 齢 雇 用 継 続 給 付 27 ( 育 児 休 業 給 付 介 護 休 業 給 付 ) 8.1 高 年 齢 雇 用 継 続 給 付 画 面 のマイナンバー 設 定 27 8.2 高 年 齢 雇 用 継 続 給 付 の 電 子 申 請 28 8.3 高 雇 用 保 険 マイナンバー 改 定 向 け 操 作 説 明 書 < 目 次 > 1.マイナンバー 等 の 法 令 改 定 対 応 について 3 1.1 法 令 改 定 の 変 更 点 3 1.2 その 他 主 要 な 変 更 点 4 2.マイナンバー 管 理 システムとの 連 携 設 定 5 2.1 マイナ de 社 労 夢 の 運 用 設 定 5 2.2 マイナ de 社 労 夢 CL の 運

More information

治 験 実 施 管 理 システム NMGCP 向 け Excel 形 式 プロトコール 作 成 手 順 書 V4.0.3 対 応 版 第 1 版 株 式 会 社 富 士 通 アドバンストエンジニアリング All Rights Reserved,Copyright 株 式 会 社 富 士 通 アドバン

治 験 実 施 管 理 システム NMGCP 向 け Excel 形 式 プロトコール 作 成 手 順 書 V4.0.3 対 応 版 第 1 版 株 式 会 社 富 士 通 アドバンストエンジニアリング All Rights Reserved,Copyright 株 式 会 社 富 士 通 アドバン 2014 年 1 月 7 日 治 験 依 頼 者 各 位 新 潟 市 民 病 院 治 験 管 理 室 Excel 形 式 の 電 子 プロトコール 提 出 の 御 依 頼 当 院 では 効 率 的 で 正 確 な 治 験 の 実 施 のため 電 子 カルテ 内 に 専 用 の Excel 形 式 による 電 子 プロトコールを 導 入 しております つきましては 治 験 依 頼 の 際 に 下 記

More information

Taro13-01_表紙目次.jtd

Taro13-01_表紙目次.jtd 209 210 1 2 4 3 ab c a 211 b c 212 1 3 50,000 30,000 20,000 2 10 100,000 1 10,000 10 =100,000 3 10 1,000,000 1 100,000 10 =1,000,000 23 1,200,000 1 40,000 5 400,000 2 10 5 10,000 3 1 500,000 1 100,000

More information

22 第 1 章 資 本 金 等 利 益 積 立 金 貴 見 のとおり 資 本 等 取 引 は 本 来 は 増 資 とか 減 資 と か さらには 旧 資 本 積 立 金 額 の 増 加 または 減 少 をいうこと になる ただ 利 益 の 配 当 はいわゆる 資 本 金 等 取 引 である か 損

22 第 1 章 資 本 金 等 利 益 積 立 金 貴 見 のとおり 資 本 等 取 引 は 本 来 は 増 資 とか 減 資 と か さらには 旧 資 本 積 立 金 額 の 増 加 または 減 少 をいうこと になる ただ 利 益 の 配 当 はいわゆる 資 本 金 等 取 引 である か 損 第 1 章 資 本 金 等 利 益 積 立 金 21 20 利 益 または 剰 余 金 の 配 当 会 社 法 では 資 本 剰 余 金 の 分 配 をした 場 合 において も これを 配 当 とすることとされていますが 税 法 を みますと 受 取 配 当 の 益 金 不 算 入 のところでは 剰 余 金 の 配 当 は 利 益 の 配 当 に 限 定 しているのに 対 して 資 本 等 取 引

More information

「給与・年金の方」からの確定申告書作成編

「給与・年金の方」からの確定申告書作成編 所 得 が 給 与 のみ 公 的 年 金 のみ 給 与 と 公 的 年 金 のみ の 方 で 入 力 方 法 選 択 画 面 で 給 与 年 金 の 方 を 選 択 された 場 合 の 確 定 申 告 書 作 成 の 操 作 手 順 を 説 明 します ~ この 操 作 の 手 引 きをご 利 用 になる 前 に ~ この 操 作 の 手 引 きでは 確 定 申 告 書 の 作 成 方 法 をご 説

More information

第4回税制調査会 総4-1

第4回税制調査会 総4-1 平 成 25 年 12 月 国 際 課 税 原 則 の 総 合 主 義 から 帰 属 主 義 への 見 直 し 税 制 調 査 会 国 際 課 税 ディスカッショングループ 国 際 課 税 原 則 の 総 合 主 義 から 帰 属 主 義 への 見 直 し 1. 見 直 しの 背 景 意 義 外 国 法 人 及 び 非 居 住 者 ( 以 下 外 国 法 人 等 という )に 対 する 課 税 原

More information

Q10 適 用 年 度 の 前 事 業 年 度 末 日 に 雇 用 者 がいない 場 合 には 雇 用 増 加 割 合 が 算 出 できないため 適 用 年 度 において 雇 用 促 進 税 制 の 適 用 を 受 けることはできな いのか Q11 新 設 法 人 や 新 たに 事 業 を 開 始

Q10 適 用 年 度 の 前 事 業 年 度 末 日 に 雇 用 者 がいない 場 合 には 雇 用 増 加 割 合 が 算 出 できないため 適 用 年 度 において 雇 用 促 進 税 制 の 適 用 を 受 けることはできな いのか Q11 新 設 法 人 や 新 たに 事 業 を 開 始 雇 用 促 進 税 制 に 関 する Q&A 雇 用 促 進 税 制 について Q1 雇 用 促 進 税 制 とはどのような 制 度 か ( 平 成 26 年 4 月 1 日 現 在 ) Q2 雇 用 促 進 税 制 の 適 用 要 件 を 一 度 でも 満 たした 場 合 には その 後 適 用 年 度 中 であれば 継 続 して 雇 用 促 進 税 制 の 適 用 を 受 けることができるのか

More information

c. 投 資 口 の 譲 渡 に 係 る 税 務 個 人 投 資 主 が 投 資 口 を 譲 渡 した 際 の 譲 渡 益 は 株 式 等 に 係 る 譲 渡 所 得 等 として 原 則 20%( 所 得 税 15% 住 民 税 5%)の 税 率 による 申 告 分 離 課 税 の 対 象 となりま

c. 投 資 口 の 譲 渡 に 係 る 税 務 個 人 投 資 主 が 投 資 口 を 譲 渡 した 際 の 譲 渡 益 は 株 式 等 に 係 る 譲 渡 所 得 等 として 原 則 20%( 所 得 税 15% 住 民 税 5%)の 税 率 による 申 告 分 離 課 税 の 対 象 となりま (5) 課 税 上 の 取 扱 い 日 本 の 居 住 者 又 は 日 本 法 人 である 投 資 主 及 び 投 資 法 人 に 関 する 課 税 上 の 一 般 的 な 取 扱 いは 以 下 のとおりです な お 税 法 等 の 改 正 税 務 当 局 等 による 解 釈 運 用 の 変 更 により 以 下 の 内 容 は 変 更 されることがあります また 個 々の 投 資 主 の 固 有 の

More information

弁護士報酬規定(抜粋)

弁護士報酬規定(抜粋) はなみずき 法 律 事 務 所 弁 護 士 報 酬 規 定 ( 抜 粋 ) 2008 年 10 月 改 訂 2014 年 4 月 * 以 下 の 弁 護 士 報 酬 は いずれも 税 込 です ただし D E L の2の 表 に 基 づき 算 出 さ れた 金 額 については 消 費 税 を 上 乗 せした 額 を 弁 護 士 報 酬 とします 目 次 A 法 律 相 談 料 B 顧 問 料 C 手

More information

01_07_01 データのインポート_エクスポート_1

01_07_01 データのインポート_エクスポート_1 データのインポート/エクスポートについて 概 要 スタッフエクスプレスでは 他 のソフトウェアで 作 成 されたスタッフデータ 得 意 先 データなどを 取 り 込 む(インポートする)ことができます また スタッフエクスプレスに 登 録 済 みのデータを Excel 形 式 CSV 形 式 で 出 力 (エクスポート)す ることができます 注 意 インポートできるデータは 次 の 条 件 を 満

More information

<4D6963726F736F667420576F7264202D208169959F93878CA797708F4390B3816A819A95CA8B4C976C8EAE91E682538B4C8DDA97E12E646F6378>

<4D6963726F736F667420576F7264202D208169959F93878CA797708F4390B3816A819A95CA8B4C976C8EAE91E682538B4C8DDA97E12E646F6378> ( 別 様 式 第 4の1-1/3-) 復 興 産 業 集 積 区 域 における 研 究 開 発 税 制 の 特 例 等 ( 法 第 39 条 ) 指 定 を 行 った 認 定 地 方 公 共 法 人 の 場 合 事 業 年 度 又 は 連 結 事 業 年 度 終 了 後 団 体 の 長 の 氏 名 を 載 してく 1か 月 以 内 に 提 出 し ださい 個 人 の 場 合 事 業 年 度 ( 暦

More information

(Microsoft Word - \203A \225\345\217W\227v\227\314 .doc)

(Microsoft Word - \203A  \225\345\217W\227v\227\314 .doc) ま ち づ く り 推 進 の た め の ア ン ケ ー ト 調 査 及 び 分 析 業 務 委 託 プ ロ ポ ー ザ ル 募 集 要 領 1 趣 旨 本 要 領 は, ま ち づ く り 推 進 の た め の ア ン ケ ー ト 調 査 及 び 分 析 業 務 委 託 の 受 託 者 を 特 定 す る た め, 企 画 提 案 型 プ ロ ポ ー ザ ル 方 式 ( 以 下 プ ロ ポ ー

More information

Taro-データ公安委員会相互協力事

Taro-データ公安委員会相互協力事 公 安 委 員 会 相 互 協 力 事 務 処 理 要 綱 の 制 定 について( 例 規 ) 最 終 改 正 平 成 26.2.7 例 規 組 二 第 5 号 京 都 府 警 察 本 部 長 から 各 部 長 各 所 属 長 あて 暴 力 団 員 による 不 当 な 行 為 の 防 止 等 に 関 する 法 律 の 事 務 取 扱 いに 関 する 訓 令 ( 平 成 4 年 京 都 府 警 察 本

More information

兵庫県公立学校教職員等財産形成貯蓄事務取扱細則

兵庫県公立学校教職員等財産形成貯蓄事務取扱細則 兵 庫 県 公 立 学 校 教 職 員 等 財 産 形 成 貯 蓄 事 務 取 扱 細 則 第 1 総 則 1 趣 旨 この 細 則 は 兵 庫 県 公 立 学 校 教 職 員 等 財 産 形 成 貯 蓄 事 務 取 扱 要 領 ( 以 下 要 領 という ) 第 26 条 の 規 定 に 基 づ き 必 要 な 事 項 を 定 めるものとする 2 財 産 形 成 貯 蓄 残 高 明 細 表 福 利

More information

所 得 税 と 住 民 税 の 税 率 表 所 得 税 と 住 民 税 の 税 率 は 以 下 の 通 りです 退 職 所 得 の 場 合 も この 税 率 表 を 使 います 1. 平 成 19 年 1 月 1 日 以 降 ( 所 法 891) 課 税 所 得 所 得 税 率 控 除 額 ~195

所 得 税 と 住 民 税 の 税 率 表 所 得 税 と 住 民 税 の 税 率 は 以 下 の 通 りです 退 職 所 得 の 場 合 も この 税 率 表 を 使 います 1. 平 成 19 年 1 月 1 日 以 降 ( 所 法 891) 課 税 所 得 所 得 税 率 控 除 額 ~195 平 成 22 年 4 月 1 日 現 在 の 法 令 等 に 準 拠 UP!Consulting Up Newsletter 所 得 税 と 住 民 税 の 税 率 表 退 職 所 得 の 計 算 退 職 金 の 選 択 課 税 特 例 外 国 税 額 控 除 と 役 員 従 業 員 の 差 異 http://www.up-firm.com 1 所 得 税 と 住 民 税 の 税 率 表 所 得 税

More information

4. 発 注 者 コード 及 び 成 績 評 定 8 (Q4-1) 該 当 の 発 注 者 コードが 付 与 されていないので 追 加 してください... 8 (Q4-2) 発 注 者 コードが 不 正 確 空 白 のものがあり 点 数 を 入 力 できません 成 績 評 定 の 入 力 ができませ

4. 発 注 者 コード 及 び 成 績 評 定 8 (Q4-1) 該 当 の 発 注 者 コードが 付 与 されていないので 追 加 してください... 8 (Q4-2) 発 注 者 コードが 不 正 確 空 白 のものがあり 点 数 を 入 力 できません 成 績 評 定 の 入 力 ができませ 2012.06.26 検 索 システムFAQ( 目 次 ) 1.PUBDIS 登 録 ( 対 象 等 ) 3 (Q1-1)PFI のテクニカルアドバイザリー 業 務 のような 調 査 業 務 は 登 録 できますか... 3 (Q1-2) 業 務 カルテは 受 注 金 額 によって 受 付 けているのですか また 業 務 受 注 時 に PUBDIS センターから 何 か 書 類 を 出 していますか...

More information

<4D F736F F D2090C389AA8CA72D92F18F6F2D D F ED28CFC82AF91808DEC837D836A B E838B A815B816A2E646F6378>

<4D F736F F D2090C389AA8CA72D92F18F6F2D D F ED28CFC82AF91808DEC837D836A B E838B A815B816A2E646F6378> 1. 基 本 事 項 1.1. システムで 行 えること デジタルライブラリー では データベース 上 に 登 録 されている 様 々なカテゴリのデータを 検 索 閲 覧 できます データを 検 索 する キーワード 検 索 全 データをフリーワードで 検 索 できます 簡 易 検 索 データの 共 通 項 目 に 条 件 を 指 定 し 全 データを 横 断 して 検 索 できます 詳 細 検 索

More information

1. 表 から 値 を 抽 出 する 説 明 1.1. 表 から 値 を 抽 出 するための 関 数 について 説 明 します LOOKUP VLOOKUP HLOOKUP 関 数 は 検 索 値 に 対 応 する 値 を 検 索 値 を 含 む 一 覧 表 から 抽 出 し てくれる 関 数 です

1. 表 から 値 を 抽 出 する 説 明 1.1. 表 から 値 を 抽 出 するための 関 数 について 説 明 します LOOKUP VLOOKUP HLOOKUP 関 数 は 検 索 値 に 対 応 する 値 を 検 索 値 を 含 む 一 覧 表 から 抽 出 し てくれる 関 数 です Lookup 関 数 Vlookup 関 数 Index 関 数 等 で 表 からデータを 抽 出 する1 目 次 Rev070924 こうすればできる 研 究 所 1. 表 から 値 を 抽 出 する 説 明... 3 2. Lookup 関 数 1( 検 査 値 配 列 を 選 択 )... 5 3. Lookup 関 数 2 検 査 値 検 査 範 囲 対 応 範 囲 を 選 択 して 扶 養

More information

する ( 評 定 の 時 期 ) 第 条 成 績 評 定 の 時 期 は 第 3 次 評 定 者 にあっては 完 成 検 査 及 び 部 分 引 渡 しに 伴 う 検 査 の 時 とし 第 次 評 定 者 及 び 第 次 評 定 者 にあっては 工 事 の 完 成 の 時 とする ( 成 績 評 定

する ( 評 定 の 時 期 ) 第 条 成 績 評 定 の 時 期 は 第 3 次 評 定 者 にあっては 完 成 検 査 及 び 部 分 引 渡 しに 伴 う 検 査 の 時 とし 第 次 評 定 者 及 び 第 次 評 定 者 にあっては 工 事 の 完 成 の 時 とする ( 成 績 評 定 射 水 市 建 設 工 事 施 行 に 関 する 工 事 成 績 評 定 要 領 平 成 8 年 3 月 7 告 示 第 44 号 ( 目 的 ) 第 条 この 要 領 は 射 水 市 が 所 掌 する 工 事 の 成 績 評 定 ( 以 下 評 定 という )に 必 要 な 事 項 を 定 め 公 正 かつ 的 確 な 評 定 を 行 うことにより もって 請 負 業 者 の 選 定 及 び 指

More information

<4D6963726F736F667420576F7264202D203032208E598BC68A8897CD82CC8DC490B68B7982D18E598BC68A8893AE82CC8A76905682C98AD682B782E993C195CA915B9275964082C98AEE82C382AD936F985E96C68B9690C582CC93C197E1915B927582CC898492B75F8E96914F955D89BF8F915F2E646F6

<4D6963726F736F667420576F7264202D203032208E598BC68A8897CD82CC8DC490B68B7982D18E598BC68A8893AE82CC8A76905682C98AD682B782E993C195CA915B9275964082C98AEE82C382AD936F985E96C68B9690C582CC93C197E1915B927582CC898492B75F8E96914F955D89BF8F915F2E646F6 様 式 租 税 特 別 措 置 等 に 係 る 政 策 の 事 前 評 価 書 1 政 策 評 価 の 対 象 とした 産 業 活 力 の 再 生 及 び 産 業 活 動 の 革 新 に 関 する 特 別 措 置 法 に 基 づく 登 録 免 租 税 特 別 措 置 等 の 名 称 許 税 の 特 例 措 置 の 延 長 ( 国 税 32)( 登 録 免 許 税 : 外 ) 2 要 望 の 内 容

More information

<4D6963726F736F667420576F7264202D208CA990CF96BE8DD78F918EAE82CC95CF8D583230313131313130>

<4D6963726F736F667420576F7264202D208CA990CF96BE8DD78F918EAE82CC95CF8D583230313131313130> 平 成 23 年 11 月 10 日 協 力 会 社 の 皆 様 へ 西 松 建 設 株 式 会 社 見 積 明 細 書 書 式 の 変 更 について 平 成 23 年 6 月 より 新 業 務 システム(RN21 システム)を 導 入 しておりますが 運 用 を 円 滑 なものとするため 提 出 いただく 見 積 明 細 書 の 書 式 を 変 更 いたしました 以 下 に 取 り 扱 い 要 領

More information

医 療 費 自 己 負 担 額 支 払 明 細 書 入 力 シート - 目 次 - < 第 1 章 > 共 通 事 項 説 明 医 療 費 自 己 負 担 額 支 払 明 細 書 入 力 シート 目 次 1.1 本 システムの 注 意 点 1 1.2 入 力 項 目 について 1.2.1 基 本 情

医 療 費 自 己 負 担 額 支 払 明 細 書 入 力 シート - 目 次 - < 第 1 章 > 共 通 事 項 説 明 医 療 費 自 己 負 担 額 支 払 明 細 書 入 力 シート 目 次 1.1 本 システムの 注 意 点 1 1.2 入 力 項 目 について 1.2.1 基 本 情 医 療 費 自 己 負 担 額 支 払 明 細 書 入 力 シート - 目 次 - < 第 1 章 > 共 通 事 項 説 明 医 療 費 自 己 負 担 額 支 払 明 細 書 入 力 シート 目 次 1.1 本 システムの 注 意 点 1 1.2 入 力 項 目 について 1.2.1 基 本 情 報 入 力 項 目 2 1.2.2 子 ども 医 療 費 明 細 入 力 項 目 3 1.2.3 ひとり

More information

はファクシミリ 装 置 を 用 いて 送 信 し 又 は 訪 問 する 方 法 により 当 該 債 務 を 弁 済 す ることを 要 求 し これに 対 し 債 務 者 等 から 直 接 要 求 しないよう 求 められたにもかか わらず 更 にこれらの 方 法 で 当 該 債 務 を 弁 済 するこ

はファクシミリ 装 置 を 用 いて 送 信 し 又 は 訪 問 する 方 法 により 当 該 債 務 を 弁 済 す ることを 要 求 し これに 対 し 債 務 者 等 から 直 接 要 求 しないよう 求 められたにもかか わらず 更 にこれらの 方 法 で 当 該 債 務 を 弁 済 するこ 求 償 権 の 管 理 回 収 に 関 する 事 例 研 究 (その2) - 平 成 23 年 度 求 償 権 管 理 回 収 等 事 務 研 修 会 から- 農 業 第 二 部 前 号 に 引 き 続 き 昨 年 9 月 に 開 催 された 求 償 権 管 理 回 収 等 事 務 研 修 会 で 求 償 権 の 管 理 回 収 事 例 研 究 として 掲 げられたテーマから4つの 事 例 について

More information

ことばを覚える

ことばを覚える 業 務 部 門 の 担 当 者 による 担 当 者 のための 業 務 アプリケーションの 作 り 方 (その1) 設 定 ウィザードを 用 いた 受 注 伝 票 管 理 ツールの 構 築 コンテキサー 操 作 演 習 コンテキサー チュートリアル(バージョン2.2 用 ) 20121113 コンテキサーのバージョンは 2.2.09 以 降 で 行 ってください 目 次 ステップ1 受 注 伝 票 パネルの

More information

質 問 票 ( 様 式 3) 質 問 番 号 62-1 質 問 内 容 鑑 定 評 価 依 頼 先 は 千 葉 県 などは 入 札 制 度 にしているが 神 奈 川 県 は 入 札 なのか?または 随 契 なのか?その 理 由 は? 地 価 調 査 業 務 は 単 にそれぞれの 地 点 の 鑑 定

質 問 票 ( 様 式 3) 質 問 番 号 62-1 質 問 内 容 鑑 定 評 価 依 頼 先 は 千 葉 県 などは 入 札 制 度 にしているが 神 奈 川 県 は 入 札 なのか?または 随 契 なのか?その 理 由 は? 地 価 調 査 業 務 は 単 にそれぞれの 地 点 の 鑑 定 62 (Q&A) 目 次 1 鑑 定 評 価 の 委 託 は 入 札 か 随 意 契 約 か またその 理 由 は 何 か 2 委 託 料 は 他 県 と 比 べて 妥 当 性 のある 金 額 か 3 地 価 公 示 ( 国 の 調 査 )との 違 いは 何 か また 国 の 調 査 結 果 はどう 活 用 しているか 4 路 線 価 を 利 用 しない 理 由 は 何 か 5 委 託 料 の 算

More information

事 業 所 マイページ 労 務 管 理 機 能 操 作 マニュアル 1. 労 務 管 理 メニュー 2. 会 社 情 報 を 確 認 する 3. 社 員 情 報 を 確 認 する 4. 社 員 のマイナンバーを 確 認 編 集 する 5. マイナンバーの 利 用 履 歴 を 確 認 する 6. 社

事 業 所 マイページ 労 務 管 理 機 能 操 作 マニュアル 1. 労 務 管 理 メニュー 2. 会 社 情 報 を 確 認 する 3. 社 員 情 報 を 確 認 する 4. 社 員 のマイナンバーを 確 認 編 集 する 5. マイナンバーの 利 用 履 歴 を 確 認 する 6. 社 事 業 所 マイページ 労 務 管 理 機 能 操 作 マニュアル 株 式 会 社 セルズ 事 業 所 マイページ 労 務 管 理 機 能 操 作 マニュアル 1. 労 務 管 理 メニュー 2. 会 社 情 報 を 確 認 する 3. 社 員 情 報 を 確 認 する 4. 社 員 のマイナンバーを 確 認 編 集 する 5. マイナンバーの 利 用 履 歴 を 確 認 する 6. 社 員 が 入

More information

特 別 徴 収 義 務 1 税 額 通 知 書 の 配 布 特 別 徴 収 義 務 への 通 知 とあわせて 納 税 への 通 知 書 を 送 付 しましたので 5 月 31 日 までに 各 納 税 に 配 布 してください なお すでに 退 職 等 した 人 については この 冊 子 にある 給

特 別 徴 収 義 務 1 税 額 通 知 書 の 配 布 特 別 徴 収 義 務 への 通 知 とあわせて 納 税 への 通 知 書 を 送 付 しましたので 5 月 31 日 までに 各 納 税 に 配 布 してください なお すでに 退 職 等 した 人 については この 冊 子 にある 給 27.05 特 別 徴 収 義 務 1 税 額 通 知 書 の 配 布 特 別 徴 収 義 務 への 通 知 とあわせて 納 税 への 通 知 書 を 送 付 しましたので 5 月 31 日 までに 各 納 税 に 配 布 してください なお すでに 退 職 等 した 人 については この 冊 子 にある 給 与 支 払 報 告 書 特 別 徴 収 にかかる 給 与 所 得 異 動 届 出 書 (

More information

中国会社法の改正が外商投資企業に与える影響(2)

中国会社法の改正が外商投資企業に与える影響(2) 中 国 ビジネス ローの 最 新 実 務 Q&A 第 74 回 中 国 会 社 法 の 改 正 が 外 商 投 資 企 業 に 与 える 影 響 (2) 黒 田 法 律 事 務 所 萱 野 純 子 藤 田 大 樹 前 稿 から2006 年 1 月 1 日 より 施 行 されている 中 国 の 改 正 会 社 法 ( 以 下 新 会 社 法 とい う)について 検 討 している 2 回 目 となる 今

More information

(1) この 貯 金 は 預 入 の 日 から 起 算 して10 年 が 経 過 した 日 に 払 戻 金 の 全 部 を 同 一 のこ の 貯 金 に 継 続 して 預 入 する 取 扱 いをします (2) 継 続 預 入 後 の 利 率 は 継 続 日 における 当 行 所 定 の 利 率 とし

(1) この 貯 金 は 預 入 の 日 から 起 算 して10 年 が 経 過 した 日 に 払 戻 金 の 全 部 を 同 一 のこ の 貯 金 に 継 続 して 預 入 する 取 扱 いをします (2) 継 続 預 入 後 の 利 率 は 継 続 日 における 当 行 所 定 の 利 率 とし 財 産 形 成 定 額 貯 金 規 定 1 財 産 形 成 定 額 貯 金 財 産 形 成 定 額 貯 金 ( 以 下 この 貯 金 といいます )は 勤 労 者 財 産 形 成 促 進 法 ( 以 下 財 形 法 といいます )に 規 定 する 勤 労 者 財 産 形 成 貯 蓄 契 約 ( 以 下 財 産 形 成 貯 蓄 契 約 といいます )に 基 づき 預 入 される 定 額 貯 金 です

More information

1 変更の許可等(都市計画法第35条の2)

1 変更の許可等(都市計画法第35条の2) 第 11 章 建 築 物 の 建 ぺい 率 等 の 指 定 ( 都 市 計 画 法 第 41 条 ) 建 築 物 の 建 ぺい 率 等 の 指 定 ( 都 市 計 画 法 第 41 条 ) 法 律 ( 建 築 物 の 建 ぺい 率 等 の 指 定 ) 第 四 十 一 条 都 道 府 県 知 事 は 用 途 地 域 の 定 められていない 土 地 の 区 域 における 開 発 行 為 につい て 開

More information

<4D6963726F736F667420576F7264202D2091DE90458F8A93BE82C991CE82B782E98F5A96AF90C582CC93C195CA92A58EFB82CC8EE888F882AB81694832355B315D2E312E318160816A2E646F63>

<4D6963726F736F667420576F7264202D2091DE90458F8A93BE82C991CE82B782E98F5A96AF90C582CC93C195CA92A58EFB82CC8EE888F882AB81694832355B315D2E312E318160816A2E646F63> 退 職 所 得 に 対 する 住 民 税 の 特 別 徴 収 の 手 引 ( 平 成 25 年 1 月 1 日 以 降 適 用 ) 愛 知 県 清 須 市 - 1 - は じ め に 個 人 の 住 民 税 は 納 税 義 務 者 の 前 年 中 の 所 得 を 課 税 標 準 としてその 翌 年 に 課 税 するいわゆる 前 年 所 得 課 税 をたてまえとしておりますが 退 職 所 得 に 対

More information

(1)1オールゼロ 記 録 ケース 厚 生 年 金 期 間 A B 及 びCに 係 る 旧 厚 生 年 金 保 険 法 の 老 齢 年 金 ( 以 下 旧 厚 老 という )の 受 給 者 に 時 効 特 例 法 施 行 後 厚 生 年 金 期 間 Dが 判 明 した Bは 事 業 所 記 号 が

(1)1オールゼロ 記 録 ケース 厚 生 年 金 期 間 A B 及 びCに 係 る 旧 厚 生 年 金 保 険 法 の 老 齢 年 金 ( 以 下 旧 厚 老 という )の 受 給 者 に 時 効 特 例 法 施 行 後 厚 生 年 金 期 間 Dが 判 明 した Bは 事 業 所 記 号 が 参 考 資 料 2 時 効 特 例 給 付 の 業 務 実 態 等 に 関 す る 調 査 結 果 に つ い て ( 報 告 書 で 取 り 上 げられた 10 ケースに 該 当 する 事 例 の 具 体 的 イメージ) (1)1オールゼロ 記 録 ケース 厚 生 年 金 期 間 A B 及 びCに 係 る 旧 厚 生 年 金 保 険 法 の 老 齢 年 金 ( 以 下 旧 厚 老 という )の

More information

2.JADA 検 査 対 象 者 登 録 リストへの 登 録 除 外 引 退 復 帰 2.1 JADA 検 査 対 象 者 登 録 リストへの 登 録 及 び 除 外 は 原 則 として 以 下 に 示 す 対 応 によりおこな うものとする 登 録 国 内 競 技 連 盟 からの 登 録 申 請

2.JADA 検 査 対 象 者 登 録 リストへの 登 録 除 外 引 退 復 帰 2.1 JADA 検 査 対 象 者 登 録 リストへの 登 録 及 び 除 外 は 原 則 として 以 下 に 示 す 対 応 によりおこな うものとする 登 録 国 内 競 技 連 盟 からの 登 録 申 請 JADA 検 査 対 象 者 登 録 リスト 居 場 所 情 報 管 理 細 則 日 本 ドーピング 防 止 規 程 第 5.5 項 居 場 所 情 報 の 提 供 に 基 づき 本 細 則 を 定 める 1.JADA 検 査 対 象 者 登 録 リストの 対 象 者 1.1 JADA に 加 盟 する 各 国 内 競 技 連 盟 は 以 下 に 示 す 基 準 に 従 い 候 補 となる 競 技

More information

平成25年度 独立行政法人日本学生支援機構の役職員の報酬・給与等について

平成25年度 独立行政法人日本学生支援機構の役職員の報酬・給与等について 平 成 25 年 度 独 立 行 政 法 日 本 学 生 支 援 機 構 の 役 職 員 の 報 酬 給 与 等 について Ⅰ 役 員 報 酬 等 について 1 役 員 報 酬 についての 基 本 方 針 に 関 する 事 項 1 平 成 25 年 度 における 役 員 報 酬 についての 業 績 反 映 のさせ 方 日 本 学 生 支 援 機 構 は 奨 学 金 貸 与 事 業 留 学 生 支 援

More information