*

Xcodeの使い方[エディタエリアのJump BarのThe related items menu]

公開日: : 最終更新日:2014/06/02 Objective-C ,


スポンサードリンク



Xcode5(iOS7対応バージョンの統合開発)の「エディタエリア」の使い方のエントリーとなります。
利用しているXcodeはXcode5(5.0.2)となります。

と思ったのですが、「エディタエリア」の内部にある「Jump Bar」の「The related items menu」の説明だけでも結構な分量になりましたので
本エントリーは「Xcode5の「エディタエリア」の使い方[前編]」となります。
「Xcode5の「エディタエリア」の使い方[後編]」で実際の「エディタエリア」、「Click a level in the jump bar」、「Texteditor relevant settings」の使い方の説明をさせていただきます。
あーー、すいません、画面の各部の名称説明していないのにいきなり記載してしまってますね・・・

画面イメージ確認用のプロジェクトの作成については、
「Xcodeの使い方」のXcodeの起動とプロジェクトの作成を参照ください。

といってもEmpty Application templateでProject NameにToDoList、Company Identifierにcom.exampleを指定して作成するだけです。

本エントリーの内容は以下の通りです。

  1. エディタエリア内の各部の名称の説明
  2. Jump Bar(The related items menu)説明

 

1 エディタエリア内の各部の名称の説明

各部と言うほどのことはないのですが、以下の画像の赤枠の部分が「Jump Bar」となります。
スクリーンショット 2014-02-20 15.52.12

「Jump Bar」の下部が「エディタエリア」となります。
スクリーンショット 2014-02-20 16.31.19

2 Jump Bar(The related items menu)説明

エディタエリアで現在表示しているファイルに関連するファイルを表示するためのメニューとなります。
AppDelegate.mを表示した状態でのメニューですので、幾つかのメニューはグレーアウトされて選択不可になっております。
スクリーンショット 2014-02-20 16.18.18

The related items

Recent Files

最近表示したファイルを一覧表示します。
以下の画像をご覧いただくと分かる通り、履歴のクリアの実行、保持する履歴の数の設定等が行えます。
スクリーンショット 2014-02-20 16.47.53

履歴の任意のファイルをクリックすると、エディタエリアにクリックしたファイルが表示されます。
この動作は以下の全てのメニューで共通の動きとなります。

counterparts

表示しているファイルや、選択しているシンボルなどに対応するファイルがメニューのサブアイテムとして表示されます。
AppDelegate.mを表示した状態のサブメニューは以下のようになります。
スクリーンショット 2014-02-20 18.39.02

superclasses

表示しているファイルに対応するクラスが継承しているクラス(親)がサブアイテムとして表示されます。
AppDelegate.mを表示した状態のサブメニューは以下のようになります。
スクリーンショット 2014-02-20 18.47.37

subclasses

表示しているファイルに対応するクラスを継承するクラス(子)がサブアイテムとして表示されます。

siblings

表示しているファイルに対応するクラスの兄弟クラスがサブアイテムとして表示されます。
兄弟クラスとは任意のクラスを継承するクラスを意味します。

AppDelegate.mを表示した状態のサブメニューは以下のようになます。
スクリーンショット 2014-02-20 19.16.09

表示されているのは、UIApplication、UIView、UIViewControllerとなっています。

各クラスのインターフェース名定義部分のみを以下に記載させていただきます。

利用しているデリゲートは異なっていますが、全てUIResponderを継承していることが見て取れます。

もうひとつ注目すべきことがあります。サブアイテムのUIApplicationをクリックすると画面が以下のようになります。
UIApplicationが選択されていることは当たり前ですが、「jump bar」の一番上の選択肢が「Simulator iOS7」に変わっています。
スクリーンショット 2014-02-20 19.29.08

「jump bar」の一番上の選択肢をクリックすると以下の一覧が表示されました。
まあ当然と言えば、当然なのですが、エディタにXcodeのFrameworkのクラス等が表示されている場合は、「jump bar」の表示がFramework用に変更されます。
スクリーンショット 2014-02-20 19.34.29

Categories

機能を追加するために、既存のクラスを書き換えたり、継承して新たにクラスを定義したりしなくても
カテゴリを利用することで、機能追加を実現できます。追加できるのはメソッドのみです。

カテゴリを簡単に説明させていただきます。

・カテゴリのヘッダファイル名・実装ファイル名
「既存のクラス」+「カテゴリ名.h」
「既存のクラス」+「カテゴリ名.m」とする
のが一般的のようです。
・カテゴリのヘッダーファイルでは、「既存のクラス」のヘッダファイルをインポートする。
(Frameworkとして既に組み込み済みのクラスの場合はインポートは不要です。)
・クラス名は、「既存のクラス」+(カテゴリ名)とする。
その他の実装方法は他のクラスと同様となります。

試しにNSDateクラスにカテゴリ名=AddCateでメソッドHogeHogeを追加してみました。
作成するファイルはNSDateAddCate.hとNSDateAddCate.mとなります。

NSDateAddCate.hは以下の様になります。

NSDateAddCate.mは以下の様になります。

追加後にNSDateAddCate.mのNSDateを選択後にマウスの右クリックでメニューを表示し「Jump to Definition」を選択し、NSDateの定義を開きます。
NSDateの定義の開き方は他にもあると思いますが、とりあえずこれで勘弁してください。
スクリーンショット 2014-02-21 18.34.08

NSDateの定義が表示されましたので、いよいよ「Categories」の確認です。
スクリーンショット 2014-02-21 18.38.32

以下の画面がNSDateのCategoriesを表示した結果です。
思った通り「AddCate」が表示されています。
スクリーンショット 2014-02-21 18.40.22

Protocols

ProtocolはJavaのInterfaceに似ていますが、Interfaceで定義しているメソッドの実装の強制を指定できる所が異なります。
また、ProtocolはDelegateと同時に利用することが多いです。
こちらのページがProtocolはDelegateについては参考になると思います。
http://eikatou.net/blog/2012/06/objective-c_kiso_protocol/
ブログのエントリーとして面白そうなのでいずれ他エントリーとして作成しようと思っています。

AppDelegate.hを選択した時に表示される内容は以下のようになります。
予想通りUIApplicationDelegateが表示されています。
スクリーンショット 2014-02-21 20.09.40

User Interfaces

この項目の存在を知って作成したProjectのテンプレートの選択ミスを嘆いているのですが。
気を取り直して、「SimpleViewApp」のProjectを再度作成してから説明させていただきます。
作成したプロジェクトのViewController.hをエディタで開いた状態にして「User Interfaces」を表示してみたところMain.storyboardが表示されました。
スクリーンショット 2014-02-21 21.45.27

Includes

Includeしているヘッダーの一覧を表示するメニューです。
AppDelegate.hのソースに改行を入れて「Includes」を表示しても
#import が見える状態にして取得した画像が以下の物となります。
スクリーンショット 2014-02-21 21.49.33

Inclueed By

ヘッダーファイルがIncludeされているファイルの一覧を表示するメニューです。Includesの逆となりますので、説明は不要と思います。
スクリーンショット 2014-02-21 21.56.04

Callers、Callees

「Callers」、「Callees」は今までのメニューとは異なり、メソッドに対して有効な物となります。
SingleViewAppTestsフォルダのSingleViewAppTests.mを開き、testExampleメソッドを選択した状態で「related items menu」を表示してみると以下の様に表示されます。
詳細は不明ですが、XCTestのフレームワークがそのような作りになっているんだと思います。
スクリーンショット 2014-02-21 22.19.57

イマイチ分かりにくい例でしたが、Callersは選択しているメソッドが呼び出されている物の一覧で、
Calleesは選択しているメソッドを呼び出している物の一覧でとなります。

Test Classees、Test Callers

「Test Classees」が選択しているクラスもしくは、メソッドのユニットテストクラスの一覧で
「Test Callers」が選択しているメソッドを呼び出しているテストケースの一覧となります。
確認のため、SingleViewAppTests.mのtestExampleテストケースを以下の様に変更しました。

NSThreadを選択し、右クリックメニューから「Jump to Definition」をクリックしすると、NSThreadクラスを選択状態になります。
この状態で「Test Classees」を表示すると以下の画面となり、「Test Classees」としてSingleViewAppTestsクラスが表示されます。
特段テストをしている訳ではないのですが、テストケースから呼び出しているのでこの認識は正しいと言えます。
スクリーンショット 2014-02-21 22.45.37

再度、testExampleのNSThreadのsleepForTimeIntervalを呼び出している箇所で、sleepForTimeIntervalを選択し、
右クリックメニューから「Jump to Definition」をクリックしてsleepForTimeIntervalの定義を表示してください。
表示された時点でsleepForTimeIntervalが選択されていますので、この状態で「Test Callers」を表示してみます。
すると以下の様な予想通りの結果が画面に表示されます。画像は貼付けておりませんが「Test Classees」もSingleViewAppTestsが表示されます。
スクリーンショット 2014-02-21 23.02.53

PreProcess

現在開いているファイルをコンパイルする為の前処理とそのファイルを含んだ内容が表示されます。
多分そんな感じだろうなぐらいです。調べてみましたが、ビルド前のPreProcesしか情報が見つかりませんでしたが
リードオンリーな情報ですので、同名クラスだけど、違うフレームワークの物をインポートしている時の確認等
コード実装者が任意のクラスに対して、クラス定義前の前処理(任意の前提ヘッダー等の解決)
が意図した動きになっている事を確認する為に存在していると思われます。

実際のビルド時にもこの情報が作成され利用されているはずです。

AppDelegate.mのPreProcessを記載させていただきます。

Assembly

これも詳細は不明です。AssemblyファイルでVisual Studioではファイルバージョン等を管理するのですが。
XcodeではAssemblyの組み立てると言う意味のような気がします。PreProcessと少し似ているますが、
対象ファイルのコンパイルを通すために、必要ファイルなファイルの解決順番やパス等が確認できます。
PreProcessと同様に実際のビルド時に作成、利用される情報であると思われます。

Disassembly

Assemblyの逆です。
これも調べてみたのですが・・・
Visual Studioでデバック時によく見るアセンブラの命令と
実際に自分が書いたコードが切り替えられ物だと思われます。
Xcodeのデバッガにもアセンブラの命令とObjective-Cのソースの表示切り替えがあるのできっとそうでしょう・・・

「Xcodeの使い方[エディタエリアのJump BarのThe related items menu]」のエントリーは以上です。
「Xcodeの使い方[エディタエリアの環境設定]」に続く。


スポンサードリンク

Googleアドセンス

Googleアドセンス




関連記事

Xcode5のナビゲーションエリア[プロジェクト、シンボル、検索]の使い方

Objective-Cでコーディングを行うための統合開発環境のXcodeの利用方法のエントリーです。

記事を読む

Xcode5のプロジェクトへのファイルやフォルダの追加方法

Xcodeでアプリ開発を行う時に、イメージ(画像)の表示は必須な処理であると言えます。 本エントリ

記事を読む

no image

Xcode5のナビゲーションエリア[問題ナビゲータ]の使い方

Xcode5のナビゲーションエリアの使い方では、アプリ開発に最も不可欠は、プロジェクトとシンボルナビ

記事を読む

Xcode5の「Auto Layout」機能の使い方[制約の編集方法]

Xcode5の「Auto Layout」機能の使い方と Xcode5の「Auto Layout

記事を読む

iOS(Xcode6とObjective-C)におけるマルチスレッド処理の実装方法その1[NSThreadクラスの簡単な利用例]

「iOS(Xcode6)におけるマルチスレッド処理の実装方法その1」に引き続きiOSに置けるマルチス

記事を読む

Xcode5のEmpty Application templateでStoryboardを利用する。

Xcode5のEmpty Application templateでStoryboardを利用する方

記事を読む

Xcodeのナビゲーションコントローラの使い方[「Single View Application」テンプレートからナビゲーションコントローラを利用する方法]

「Master-Detail Application」テンプレートを利用すれば、始めから「ナビゲーシ

記事を読む

Xcode(Objective-C)のデリゲートとプロトコルの使い方[後編]

ではXcodeが既に用意しているデリゲートを利用した実装例について説明させていただきました。

記事を読む

Xcode5でイメージ(画像)を表示&操作する[前編]

Xcodeでアプリ開発を行う時に、イメージ(画像)の表示は必須な処理であると言えます。 前回のエン

記事を読む

Xcode&Objective-Cのまとめエントリー

エントリーもまずまず揃ってきたので、まとめのエントリーを作成しておこうと思います。 基本的には、各

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

動画で英語を学習できるiOSの無料アプリCapTubeをリリースいたしました。

個人では初となるiOSアプリをリリースいたしました。 何度もリジ

no image
Ruby on rails4系でBootstrapを利用するためのtips

MacでRuby on rails4系のBootstrapを利用しよう

no image
Java、Eclipse、JUnit関連のエントリーの移行のお知らせ

Java、Eclipse、JUnit関連のエントリーは http:/

iOS8開発者向けお勧め本紹介[詳細! Swift iPhoneアプリ開発 入門ノート Swift 1.1+Xcode 6.1+iOS 8.1対応]

iOS7開発者向けお勧め本紹介を以前に紹介させていただきまいたが、今回

Swift入門(Xcode6のXCTestフレームワークで学ぶ) 第二回「関数(メソッド)とクロージャーの利用方法」

前回はSwiftの概要をザックリと説明させていただきました。 今

→もっと見る

Optimization WordPress Plugins & Solutions by W3 EDGE
PAGE TOP ↑