Cocoa API解説(macOS/iOS)

iOS , Mac アプリケーション開発のために使われる主要フレームワークの日本語情報です。

目次

Xcode

INDEX>

編集時のバージョン OS X 10.9,iOS7.0 Xcode 5

Xcodeはアップルの統合開発環境IDE)です。


Xcode5解説

XCodeと書いている人がいますが、間違いです。cは小文字です。Xcode!

テンプレート

テンプレートからプロジェクト

テンプレートからプロジェクトを作成するには[File][New][Project...]でテンプレートを選択します。

Master-Detail Application
Tabbed Application
OpenGL Game
Utility Application
Page-Based Application
Single View Application

テンプレートからファイル作成

Objective-C class

クラスの実装ファイル(.m)とインターフェースファイル(.h)を作成してプロジェクトに追加します。

Objective-C test case class

ユニットテストを実装するためのクラスを作成してプロジェクトに追加します。

Objective-C category

クラスを拡張するカテゴリを記述するファイルを作成します。

Objective-C extension
Objective-C protocol

プロトコルに準拠するためのメソッドを定義するファイルを作成します。

ファイル

ファイルの追加

プロジェクトナビゲーター内に追加するファイルをドロップします。
プロジェクト内にコピーする場合には「Copy Items Into destination groupe's folder (If needed)」にチェックを入れます。

ファイルの削除

プロジェクトナビゲーターで、削除するファイルを選択して「Delete」キーを押します。
参照のみの削除かファイル自体をゴミ箱に入れるかの選択ができます。

Finderに表示

プロジェクトナビゲーター内で、該当するファイルを選択して、右クリックするとメニューが現れます。「Show in Finder」をクリックすると該当するファイルがFinderで表示されます。

フレームワーク

フレームワークの追加

「Linked Framework and Libraries」セクションで「+」をクリック。
追加するフレームワークを「Add」で追加します。


フレームワークのヘッダ

#import<UIKIt/UIKit.h>

<フレームワーク名/ヘッダファイル名>となっています。

グループ

グループの追加

グループ上で右クリック「New Groupe」->新しいグループ
項目を選択して右クリック「New Groupe in selection」->選択した項目をグループメンバーとして新しいグループを作成

グループの削除

削除したいグループを選択して、「delete」キーを押します。
空のグループの場合は即時削除されます。
グループ内に項目がある場合は、参照のみの削除か、項目を削除するかのダイアログが表示されます。
中の項目を残したい場合は、先に移動してグループ外に出しておきます。

ターゲット

プロパティ

アプリケーションアイコンの設定

エディタ

コード補完

エディタでコードを入力していくと、メソッド名やクラス名の候補が表示されます。

メニューが表示されている状態で矢印キー(↑、↓)で選択、「return」で決定。

メニューが表示されている状態で「tab」を押すと、次の選択状態まで移動します。

「escape」キーを押すことで、補完機能を解除します。

入力しなければいけないパラメータまでtabキーで移動することができます。

コード補完のアイコン
C:クラス
Pr:プロトコル
M:メソッド
x:メソッドや関数の引数
T:型
V:変数
K:enum
f:関数
#:マクロ
{}:コードスニペット

16進エディタ

プロジェクトナビゲーター
右クリック 「Open As」 「Hex」

インデント設定

Xcode」「Preferences...」の「Text Editing」で「Indentation」タブでインデントを設定します。

再インデント

メニューから「Xcode」「Editor」「Structure」「Re-Indent」で選択行を再インデントできます。
エディタ画面で右クリックすると「Structure」「Re-Indent」で選択行を再インデントできます。

区切り文字

コード折り畳み表示

行番号

Xcode」「Preferences...」「Text Editing」の「Editing」タブ、Show:Line numbersにチェックを入れると行番号が表示されます。

一括編集

ナビゲーション

ジャンプバー

関連ファイル

エディタ画面に表示されているファイルに関連したファイルへのナビゲーションが表示されます。

戻る

以前開いたファイルに戻ります。

進む

以前開いたファイルから、もう一度先へ進む場合に使います。

ファイルパス

現在開いているファイルのパスが表示されます。

シンボル

現在開いているファイルのシンボルが表示されます。メソッドやプロパティなどにジャンプできます。pragma markで設定している場所にもジャンプできます。

シンボルナビゲーター

ソースコードに含まれているシンボルが表示されます。
クリックすることでシンボルにジャンプできます。

検索ナビゲーター

プロジェクトに含まれるテキストを検索することができます。
クリックすることで検索位置にジャンプできます。

pragma mark

ソースコード内でセクション分けをしたい場合などに使います。
pragma mark

アシスタントエディタ

アシスタントファイルの選択

レイアウトの変更

イシューナビゲーター

エラーの種類

エラー 赤いSTOPマーク
警告  黄色い注意マーク

エラーへのジャンプ

リファクタリング

名前の変更

変更したいシンボルを選択。
「Edit」「Refactor」「Rename...」を選択。

変更予定を左に、変更前を右に表示されるので確認。
変更する場合はそのまま、変更しない場合は真ん中の数字部分をクリックして「Discard change」を選択。

プロジェクト名の変更

Xcode右上のIDを変える
f:id:jjj777:20141231120628p:plain

f:id:jjj777:20141231120636p:plain

関連する所を変えるか聞いてくる
f:id:jjj777:20141231120640p:plain

f:id:jjj777:20141231120644p:plain

ユニットテストを使っている場合はエラーが出る(これはなにか対処法があるか)

f:id:jjj777:20141231123724p:plain
ソースコードが入っているフォルダをリネームするとInfo.plistの場所はどこかとエラーが出るので、手動でリネームする。
リネームするとTarget&Membershipのところのチェックをはずさないといけない

f:id:jjj777:20141231123731p:plain






抽出

上下の移動

コードスニペット

スニペットの表示

スニペットの挿入

スニペット画面からドラッグして、挿入したい場所にドロップします。

スニペットの追加

エディット画面からテキストを選択して、スニペット画面までドラッグドロップします。
ダブルクリックで編集することができます。
Title:表示名
Summary:概要
Platform:All,iOS,OS X
Language:対応する言語
Completion Shortcut:
Completion Scopes:All,Class Implementation,...

スニペットの編集

Interface Builder

プレースフォルダ

File's Owner

XIBファイルをロードするオブジェクト

First Responder

ユーザーが何か操作をしている際のインターフェースオブジェクト

Application

共有Applicationオブジェクト

インターフェースオブジェクト

オブジェクトアイコンの操作

ストーリーボード

ストーリーボード

First Responder
View Controller

レイアウトツール

ガイド

選択ハンドル

整列

サイズ

自動レイアウト

オブジェクトID

カスタムオブジェクトの追加

コードとGUIの接続

アウトレット

プロパティをインターフェースオブジェクトに接続する。

アクション

イベントが発生したときに呼び出されるメソッド

静的解析

/Users/air/Desktop/BezierEdit/BezierEditiOS/Bezier/OOOBezierView.m:73:1: The Objective-C class 'OOOBezierView', which is derived from class 'NSView', defines the instance method 'needsDisplay' whose return type is 'void'. A method with the same name (same selector) is also defined in class 'NSView' and has a return type of 'BOOL'. These two types are incompatible, and may result in undefined behavior for clients of these classes

Value stored to 'xxxObj' is never read

xxxObjは読み込まれることがない。
このあと使っていないオブジェクトの可能性
/Users/air/Desktop/BezierEdit/BezierEditiOS/Bezier/OOOBezierView.m:324:9: Value stored to 'beforePointObj' is never read

/Users/air/Desktop/BezierEdit/BezierEditiOS/Bezier/OOOBezierView.m:626:25: Value stored to 'selectPath' is never read

Potential leak of an object

リークの可能性
/Users/air/Desktop/BezierEdit/BezierEditiOS/Bezier/OOOBezierView.m:1080:35: Potential leak of an object

コマンドラインユーティリティ

xcode-select

xcodebuild

xcrun

agvtool

codesign

productsign

ibtool

opendiff


はじめてのXcode4

はじめてのXcode4


Objective‐Cフレーズブック―使いこなすためのコード&イディオム100+

Objective‐Cフレーズブック―使いこなすためのコード&イディオム100+


レベルアップ Objective-C (Software Design plus)

レベルアップ Objective-C (Software Design plus)