UIColorクラス

2014. 04. 25
・継承
NSObject

・準拠
NSCopying
NSSecureCoding
NSObject (NSObject)

・フレームワーク
/System/Library/Frameworks/UIKit.framework

・利用可能
iOS 2.0以降で利用可能

・宣言
UIColor.h
UIInterface.h



●概要

UIColorオブジェクトは色と時には不透明度(アルファ値)を表します。
UIColorオブジェクトは色データを格納し、描画中に現在の塗りや線の描画色を設定するために使用することができます。

UIKitの多くのメソッドはUIColorオブジェクトを使用して色データを指定する必要があり、一般的に色を指定する主たる方法である必要があります。
このオブジェクトで使用されている色空間はiOSベースのデバイス上で使用するために最適化されているため、ほとんどの描画のニーズに適しています。
ただし貴方がCore Graphicsの色と色空間を代わりに使用したい場合は、そうしてください。

色オブジェクトは不変なので、アプリ内の複数のスレッドから使用しても安全です。

ほとんどの開発者にとって、UIColorをサブクラス化する必要はありません。
追加で色空間や色モデルをサポートする必要がある場合は、必要なときのみ行ってください。
サブクラス化する場合、追加したプロパティとメソッドは複数のスレッドから使用しても安全である必要があります。



●タスク

●コンポーネント値からのUIColorオブジェクトの生成

+ colorWithWhite:alpha:
+ colorWithHue:saturation:brightness:alpha:
+ colorWithRed:green:blue:alpha:
+ colorWithCGColor:
+ colorWithPatternImage:
+ colorWithCIColor:
– colorWithAlphaComponent:

●UIColorオブジェクトの初期化

– initWithWhite:alpha:
– initWithHue:saturation:brightness:alpha:
– initWithRed:green:blue:alpha:
– initWithCGColor:
– initWithPatternImage:
– initWithCIColor:

●プリセットコンポーネント値によるUIColorの生成

+ blackColor
+ darkGrayColor
+ lightGrayColor
+ whiteColor
+ grayColor
+ redColor
+ greenColor
+ blueColor
+ cyanColor
+ yellowColor
+ magentaColor
+ orangeColor
+ purpleColor
+ brownColor
+ clearColor

●システムカラー

+ lightTextColor
+ darkTextColor
+ groupTableViewBackgroundColor
+ scrollViewTexturedBackgroundColor    iOS 7.0では非推奨
+ underPageBackgroundColor    iOS 7.0では非推奨
+ viewFlipsideBackgroundColor    iOS 7.0では非推奨

●色情報の取得

  CGColor    プロパティ
  CIColor    プロパティ
– getHue:saturation:brightness:alpha:
– getRed:green:blue:alpha:
– getWhite:alpha:

●描画処理

– set
– setFill
– setStroke



●プロパティ

CGColor

レシーバの色に対応するQuartz色の参照です。(読み込みのみ)

@property(nonatomic,readonly) CGColorRef CGColor

利用可能
iOS 2.0以降で利用可能。

宣言
UIColor.h



●クラスメソッド

blackColor

グレースケール値が0.0でアルファ値が1.0の色オブジェクトを返します。

+ (UIColor *)blackColor

戻り値
UIColorオブジェクト。

利用可能
iOS 2.0以降で利用可能。

宣言
UIColor.h


blueColor

RGB値が0.0, 0.0, 1.0でアルファ値が1.0の色オブジェクトを返します。

+ (UIColor *)blueColor

戻り値
UIColorオブジェクト。

利用可能
iOS 2.0以降で利用可能。

宣言
UIColor.h


brownColor

RGB値が0.6, 0.4, 0.2でアルファ値が1.0の色オブジェクトを返します。

+ (UIColor *)brownColor

戻り値
UIColorオブジェクト。

利用可能
iOS 2.0以降で利用可能。

宣言
UIColor.h


clearColor

グレースケールとアルファ値が共に0.0の色オブジェクトを返します。

+ (UIColor *)clearColor

戻り値
UIColorオブジェクト。

利用可能
iOS 2.0以降で利用可能。

宣言
UIColor.h


colorWithRed:green:blue:alpha:

指定した不透明度とRGB成分の値を使用し、色オブジェクトを生成して返します。

+ (UIColor *)colorWithRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha

パラメータ

red
色オブジェクトの赤成分で、0.0から1.0の値で指定します。

green
色オブジェクトの緑成分で、0.0から1.0の値で指定します。

blue
色オブジェクトの青成分で、0.0から1.0の値で指定します。

alpha
色オブジェクトの不透明度で、0.0から1.0の値で指定します。

戻り値
UIColorオブジェクト。
このオブジェクトによって表される色情報は、デバイスのRGB色空間です。

解説
0.0未満の値は0.0として、1.0より上の値は1.0として解釈されます。

利用可能
iOS 2.0以降で利用可能。

宣言
UIColor.h


cyanColor

RGB値が0.0, 1.0, 1.0でアルファ値が1.0の色オブジェクトを返します。

+ (UIColor *)cyanColor

戻り値
UIColorオブジェクト。

利用可能
iOS 2.0以降で利用可能。

宣言
UIColor.h


darkGrayColor

グレースケール値が1/3でアルファ値が1.0の色オブジェクトを返します。

+ (UIColor *)darkGrayColor

戻り値
UIColorオブジェクト。

利用可能
iOS 2.0以降で利用可能。

宣言
UIColor.h


grayColor

グレースケール値が0.5でアルファ値が1.0の色オブジェクトを返します。

+ (UIColor *)grayColor

戻り値
UIColorオブジェクト。

利用可能
iOS 2.0以降で利用可能。

宣言
UIColor.h


greenColor

RGB値が0.0, 1.0, 0.0でアルファ値が1.0の色オブジェクトを返します。

+ (UIColor *)greenColor

戻り値
UIColorオブジェクト。

利用可能
iOS 2.0以降で利用可能。

宣言
UIColor.h


lightGrayColor

グレースケール値が2/3でアルファ値が1.0の色オブジェクトを返します。

+ (UIColor *)lightGrayColor

戻り値
UIColorオブジェクト。

利用可能
iOS 2.0以降で利用可能。

宣言
UIColor.h


magentaColor

RGB値が1.0, 0.0, 1.0でアルファ値が1.0の色オブジェクトを返します。

+ (UIColor *)magentaColor

戻り値
UIColorオブジェクト。

利用可能
iOS 2.0以降で利用可能。

宣言
UIColor.h


orangeColor

RGB値が1.0, 0.5, 0.0でアルファ値が1.0の色オブジェクトを返します。

+ (UIColor *)orangeColor

戻り値
UIColorオブジェクト。

利用可能
iOS 2.0以降で利用可能。

宣言
UIColor.h


purpleColor

RGB値が0.5, 0.0, 0.5でアルファ値が1.0の色オブジェクトを返します。

+ (UIColor *)purpleColor

戻り値
UIColorオブジェクト。

利用可能
iOS 2.0以降で利用可能。

宣言
UIColor.h


redColor

RGB値が1.0, 0.0, 0.0でアルファ値が1.0の色オブジェクトを返します。

+ (UIColor *)redColor

戻り値
UIColorオブジェクト。

利用可能
iOS 2.0以降で利用可能。

宣言
UIColor.h


viewFlipsideBackgroundColor

反転している間のビューの裏面で使用されるシステムカラーを返します。(iOS 7.0では非推奨)

+ (UIColor *)viewFlipsideBackgroundColor

戻り値
UIColorオブジェクト。

利用可能
iOS 2.0以降で利用可能。
iOS 7.0では非推奨。

宣言
UIInterface.h


whiteColor

グレースケール値が1.0でアルファ値が1.0の色オブジェクトを返します。

+ (UIColor *)whiteColor

戻り値
UIColorオブジェクト。

利用可能
iOS 2.0以降で利用可能。

宣言
UIColor.h


yellowColor

RGB値が1.0, 1.0, 0.0でアルファ値が1.0の色オブジェクトを返します。

+ (UIColor *)yellowColor

戻り値
UIColorオブジェクト。

利用可能
iOS 2.0以降で利用可能。

宣言
UIColor.h



●インスタンスメソッド

initWithRed:green:blue:alpha:

指定した不透明度とRGBのコンポーネント値を使って色オブジェクトを初期化して返します。

- (UIColor *)initWithRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha

パラメータ

red
色オブジェクトの赤成分で、0.0から1.0の値で指定します。

green
色オブジェクトの緑成分で、0.0から1.0の値で指定します。

blue
色オブジェクトの青成分で、0.0から1.0の値で指定します。

alpha
色オブジェクトの不透明度で、0.0から1.0の値で指定します。

戻り値
初期化された色オブジェクト。
このオブジェクトによって表される色情報は、デバイスのRGB色空間です。

解説
0.0未満の値は0.0として、1.0より上の値は1.0として解釈されます。

利用可能
iOS 2.0以降で利用可能。

宣言
UIColor.h



参考文献

UIColor Class Reference

UISwitchクラス

2014. 04. 24
・継承
UIControlUIViewUIResponderNSObject

・準拠
NSCoding
NSCoding (UIView)
UIAppearance (UIView)
UIAppearanceContainer (UIView)
UIDynamicItem (UIView)
NSObject (NSObject)

・フレームワーク
/System/Library/Frameworks/UIKit.framework

・利用可能
iOS 2.0以降で利用可能

・手引書
“Switches”

・宣言
UISwitch.h



●概要

UISwitchクラスは、例えば設定アプリで機内モードやBluetoothなど、選択するために使用されるON/OFFボタンの作成と管理に使用します。
これらのオブジェクトはスイッチとして知られています。

UISwitchクラスはON/OFF状態を制御するプロパティとメソッドを宣言しています。

UISliderと同様に、ユーザがスイッチコントロールを操作(これを"フリップ"と言います)するとUIControlEventValueChangedイベントが生成され、(適切に設定されている場合)コントロールがアクションメッセージを送信します。

スイッチがオンまたはオフの時に、色遣いに使用されている色を変更することによってスイッチの外観をカスタマイズすることができます。

基本的なビューの動作についての情報は『iOS View プログラミングガイド』を参照してください。

外観と動作の設定についての詳細は『Switches』を参照してください。



●タスク

●スイッチオブジェクトの初期化

– initWithFrame:

●オフ/オン状態の設定

  on    プロパティ
– setOn:animated:

●スイッチの外観のカスタマイズ

  onTintColor    プロパティ
  tintColor    プロパティ
  thumbTintColor    プロパティ
  onImage    プロパティ
  offImage    プロパティ



●プロパティ

on

スイッチのON/OFF状態を決定するブール値です。

@property(nonatomic, getter=isOn) BOOL on

解説
このプロパティは、UISwitchオブジェクトがONまたはOFFであるかどうかを決定する値を取得して、(アニメーションを除いて)設定をすることができます。

利用可能
iOS 2.0以降で利用可能。

宣言
UISwitch.h



●インスタンスメソッド

setOn:animated:

スイッチの状態をONまたはOFFに設定し、必要に応じて遷移をアニメーションします。

- (void)setOn:(BOOL)on animated:(BOOL)animated

パラメータ

on
スイッチがONの位置になっている必要がある場合はYES、OFFの位置になっている必要がある場合はNOにします。
スイッチが既に指定された位置にある場合は何も起こりません。

animated
スイッチの反転をアニメーションする場合はYES、そうでない場合はNOにします。

解説
スイッチがどちらかの位置に設定されなければアクションメッセージは送信されません。

利用可能
iOS 2.0以降で利用可能。

宣言
UISwitch.h



参考文献

UISwitch Class Reference

Foundation Data Types

2014. 04. 23
・フレームワーク
Foundation/Foundation.h

・宣言
NSByteOrder.h
NSDate.h
NSDecimal.h
NSHashTable.h
NSMapTable.h
NSObjCRuntime.h
NSPort.h
NSRange.h
NSString.h
NSZone.h
objc/NSObjCRuntime.h



●概要

このドキュメントは、Foundationフレームワークのデータ型と定数について説明します。



●データ型


NSInteger

整数を記述するために使用します。

typedef long NSInteger;

解説
32ビットアプリケーションを構築する時、NSIntegerは32ビットの整数です。
64ビットアプリケーションでは64ビットの整数としてNSIntegerを扱います。

利用可能
iOS 2.0以降で利用可能。

宣言
objc/NSObjCRuntime.h


NSRange

文字列内の文字やNSArrayオブジェクト内のオブジェクトなど、連続したものの一部を表すのに使う構造体です。

typedef struct _NSRange {
    NSUInteger location;
    NSUInteger length;
} NSRange;

領域

location
(C配列のように最初が0で)開始するインデックスです。
システムの他の部分との互換性のため、LONG_MAXは貴方が使用する必要がある位置の最大値です。

length
(0にすることができる)範囲内の項目数です。
システムの他の部分との互換性のため、LONG_MAXは貴方が使用する必要がある長さの最大値です。

解説
範囲処理を行うFoundation関数は以下の通りです。

NSEqualRanges
NSIntersectionRange
NSLocationInRange
NSMakeRange
NSMaxRange
NSRangeFromString
NSStringFromRange
NSUnionRange

利用可能
iOS 2.0以降で利用可能。

宣言
NSRange.h



参考文献

Foundation Data Types Reference

Foundation Constants

2014. 04. 22
・フレームワーク
Foundation/Foundation.h

・宣言
FoundationErrors.h
NSByteOrder.h
NSDecimal.h
NSError.h
NSException.h
NSObjCRuntime.h
NSPathUtilities.h
NSURLError.h
objc/NSObjCRuntime.h



●概要

このドキュメントは、特定のクラスに関連付けされていないFoundationフレームワークの定数を定義しています。



●定数


列挙型)

NSNotFound

要求した項目が見つからない、または存在しないことを示す値を定義します。

enum {
    NSNotFound = NSIntegerMax
};

定数

NSNotFound
要求された項目が見つからない、または存在しないことを示す値です。
iOS 2.0以降で利用可能。
NSObjCRuntime.hで宣言。

解説
NSNotFoundは通常、文字列オブジェクト内の文字やNSArrayオブジェクトのidなど、シリアルデータ内の項目を検索して索引を返す、様々なメソッドや関数で使用されています。

特別な考慮事項
Mac OS X v10.5より以前は、NSNotFoundは0x7fffffffと定義されていました。
32ビットシステムでは、NSIntegerMaxと事実上同じでした。
64ビット環境をサポートするため、NSNotFoundは現在NSIntegerMaxとして正式に定義されています。
即ちこの値は、32ビットと64ビット環境では異なることを意味します。
したがってファイルやアーカイブ内で直接値を保存しないでください。
更に32ビットと64ビット間の工程で値を送信する際、分散オブジェクトを介して他方のNSNotFoundを取得しないでください。
これは(配列のプロキシに送信される)NSArrayのindexOfObject:など、NSNotFoundを返す可能性のある分散オブジェクト上で呼び出される全てのCocoaメソッドに適用されます。


NSComparisonResult

これらの定数は、要求内の項目を順序立てる方法を示すために使用されます。

enum {
    NSOrderedAscending = -1,
    NSOrderedSame,
    NSOrderedDescending
};
typedef NSInteger NSComparisonResult;

定数

NSOrderedAscending
左オペランドが右オペランドよりも小さい。
iOS 2.0以降で利用可能。
NSObjCRuntime.hで宣言。

NSOrderedSame
2つのオペランドが等しい。
iOS 2.0以降で利用可能。
NSObjCRuntime.hで宣言。

NSOrderedDescending
左オペランドが右オペランドよりも大きい。
iOS 2.0以降で利用可能。
NSObjCRuntime.hで宣言。

解説
これらの定数は要求内の項目を、メソッドまたは関数の呼び出しで指定した最初の項目から最後に向かって(つまりコードの左から右へ)順序立てる方法を示すために使用されます。


NSSearchPathDirectory

これらの定数は、NSFileManagerメソッドのURLsForDirectory:inDomains:URLForDirectory:inDomain:appropriateForURL:create:error:によって、ディレクトリの様々な場所を指定するものです。

enum {
    NSApplicationDirectory = 1,
    NSDemoApplicationDirectory,
    NSDeveloperApplicationDirectory,
    NSAdminApplicationDirectory,
    NSLibraryDirectory,
    NSDeveloperDirectory,
    NSUserDirectory,
    NSDocumentationDirectory,
    NSDocumentDirectory,
    NSCoreServiceDirectory,
    NSAutosavedInformationDirectory = 11,
    NSDesktopDirectory = 12,
    NSCachesDirectory = 13,
    NSApplicationSupportDirectory = 14,
    NSDownloadsDirectory = 15,
    NSInputMethodsDirectory = 16,
    NSMoviesDirectory = 17,
    NSMusicDirectory = 18,
    NSPicturesDirectory = 19,
    NSPrinterDescriptionDirectory = 20,
    NSSharedPublicDirectory = 21,
    NSPreferencePanesDirectory = 22,
    NSItemReplacementDirectory = 99,
    NSAllApplicationsDirectory = 100,
    NSAllLibrariesDirectory = 101
};
typedef NSUInteger NSSearchPathDirectory;

定数

NSApplicationDirectory
サポートされているアプリケーション(/Applications)。
iOS 2.0以降で利用可能。
NSPathUtilities.hで宣言。

NSDemoApplicationDirectory
サポートされていないアプリケーションやデモンストレーションバージョン。
iOS 2.0以降で利用可能。
NSPathUtilities.hで宣言。

NSDeveloperApplicationDirectory
開発者向けアプリケーション(/Developer/Applications)。
非推奨:Xcode 4.3の時点でDeveloperおよびApplicationsディレクトリは無くなりました。
Xcode.appはユーザのApplicationsディレクトリにインストールされる自己完結型のアプリケーションであり、デフォルトでは何処にでも置くことができます。
iOS 2.0以降で利用可能。
NSPathUtilities.hで宣言。

NSAdminApplicationDirectory
システムとネットワークの管理アプリケーション。
iOS 2.0以降で利用可能。
NSPathUtilities.hで宣言。

NSLibraryDirectory
ユーザに見える色々なドキュメント、サポート、構成ファイル(/Library)。
iOS 2.0以降で利用可能。
NSPathUtilities.hで宣言。

NSDeveloperDirectory
開発者向けリソース(/Developer)。
非推奨:Xcode 4.3の時点でDeveloperおよびApplicationsディレクトリは無くなりました。
Xcode.appはユーザのApplicationsディレクトリにインストールされる自己完結型のアプリケーションであり、デフォルトでは何処にでも置くことができます。
iOS 2.0以降で利用可能。
NSPathUtilities.hで宣言。

NSUserDirectory
ユーザのホームディレクトリ(/Users)。
iOS 2.0以降で利用可能。
NSPathUtilities.hで宣言。

NSDocumentationDirectory
ドキュメント。
iOS 2.0以降で利用可能。
NSPathUtilities.hで宣言。

NSDocumentDirectory
ドキュメントのディレクトリ。
iOS 2.0以降で利用可能。
NSPathUtilities.hで宣言。

NSCoreServiceDirectory
core servicesの場所(System/Library/CoreServices)。
iOS 2.0以降で利用可能。
NSPathUtilities.hで宣言。

NSAutosavedInformationDirectory
ユーザのドキュメントを自動保存する場所(Library/Autosave Information)。
iOS 4.0以降で利用可能。
NSPathUtilities.hで宣言。

NSDesktopDirectory
ユーザのデスクトップディレクトリの場所。
iOS 2.0以降で利用可能。
NSPathUtilities.hで宣言。

NSCachesDirectory
破棄可能なキャッシュファイルの場所(Library/Caches)。
iOS 2.0以降で利用可能。
NSPathUtilities.hで宣言。

NSApplicationSupportDirectory
アプリケーションサポートファイルの場所(Library/Application Support)。
iOS 2.0以降で利用可能。
NSPathUtilities.hで宣言。

NSDownloadsDirectory
ユーザのダウンロードディレクトリの場所。
NSDownloadsDirectoryフラグは、NSUserDomainMaskが提供されている場合のみパスを生成します。
iOS 2.0以降で利用可能。
NSPathUtilities.hで宣言。

NSInputMethodsDirectory
入力メソッドの場所(Library/Input Methods)。
iOS 4.0以降で利用可能。
NSPathUtilities.hで宣言。

NSMoviesDirectory
ユーザのMoviesディレクトリの場所(~/Movies)。
iOS 4.0以降で利用可能。
NSPathUtilities.hで宣言。

NSMusicDirectory
ユーザのMusicディレクトリの場所(~/Music)。
iOS 4.0以降で利用可能。
NSPathUtilities.hで宣言。

NSPicturesDirectory
ユーザのPicturesディレクトリの場所(~/Pictures)。
iOS 4.0以降で利用可能。
NSPathUtilities.hで宣言。

NSPrinterDescriptionDirectory
システムのPPDディレクトリの場所(Library/Printers/PPDs)。
iOS 4.0以降で利用可能。
NSPathUtilities.hで宣言。

NSSharedPublicDirectory
ユーザのPublic共有ディレクトリの場所(~/Public)。
iOS 4.0以降で利用可能。
NSPathUtilities.hで宣言。

NSPreferencePanesDirectory
システムの環境設定で使用する、PreferencePanesディレクトリの場所(Library/PreferencePanes)。
iOS 4.0以降で利用可能。
NSPathUtilities.hで宣言。

NSItemReplacementDirectory
NSFileManagerのメソッドURLForDirectory:inDomain:appropriateForURL:create:error:で使用します。
iOS 4.0以降で利用可能。
NSPathUtilities.hで宣言。

NSAllApplicationsDirectory
アプリケーションが存在することができる全てのディレクトリ。
iOS 2.0以降で利用可能。
NSPathUtilities.hで宣言。

NSAllLibrariesDirectory
リソースが存在できる全てのディレクトリ。
iOS 2.0以降で利用可能。
NSPathUtilities.hで宣言。


NSSearchPathDomainMask

NSSearchPathDirectory型の基本となる場所を指定する、検索パスドメインの定数です。
これらの定数は、NSFileManagerメソッドのURLsForDirectory:inDomains:URLForDirectory:inDomain:appropriateForURL:create:error:によって使用されます。

enum {
    NSUserDomainMask = 1,
    NSLocalDomainMask = 2,
    NSNetworkDomainMask = 4,
    NSSystemDomainMask = 8,
    NSAllDomainsMask = 0x0ffff,
};
typedef NSUInteger NSSearchPathDomainMask;

定数

NSUserDomainMask
ユーザのホームディレクトリで、ユーザの個人的なアイテムをインストールする場所です(~)。
iOS 2.0以降で利用可能。
NSPathUtilities.hで宣言。

NSLocalDomainMask
現在のマシンの場所で、このマシンで誰でも利用することができるアイテムがインストールされている場所です。
iOS 2.0以降で利用可能。
NSPathUtilities.hで宣言。

NSNetworkDomainMask
ローカルエリアネットワークで一般に利用できる場所で、ネットワーク上で利用できるアイテムがインストールされている場所です(/Network)。
iOS 2.0以降で利用可能。
NSPathUtilities.hで宣言。

NSSystemDomainMask
Appleが提供している場所で、変更することはできません(/System)。
iOS 2.0以降で利用可能。
NSPathUtilities.hで宣言。

NSAllDomainsMask
全てのドメイン。
将来追加される全てのアイテムを含みます。
iOS 2.0以降で利用可能。
NSPathUtilities.hで宣言。

宣言
NSPathUtilities.h



グローバル変数)



数値定数)



例外)


一般的な例外名

NSExceptionによって定義される例外です。

extern NSString *NSGenericException;
extern NSString *NSRangeException;
extern NSString *NSInvalidArgumentException;
extern NSString *NSInternalInconsistencyException;
extern NSString *NSMallocException;
extern NSString *NSObjectInaccessibleException;
extern NSString *NSObjectNotAvailableException;
extern NSString *NSDestinationInvalidException;
extern NSString *NSPortTimeoutException;
extern NSString *NSInvalidSendPortException;
extern NSString *NSInvalidReceivePortException;
extern NSString *NSPortSendException;
extern NSString *NSPortReceiveException;
extern NSString *NSOldStyleException;

定数

NSGenericException
例外の総称です。
通常はより具体的な例外名を使用する必要があります。
iOS 2.0以降で利用可能。
NSException.hで宣言。

NSRangeException
文字列の終端を超えるなど、データの境界外へのアクセスを試みた時に生じる例外の名前です。
iOS 2.0以降で利用可能。
NSException.hで宣言。

NSInvalidArgumentException
非nilオブジェクトが要求されているところにnilポインタを指定するなど、メソッドに無効な引数を渡した時に生じる例外の名前です。
iOS 2.0以降で利用可能。
NSException.hで宣言。

NSInternalInconsistencyException
内部アサーションが失敗し、呼び出したコード内で予期しない状態が起こった時に生じる例外の名前です。
iOS 2.0以降で利用可能。
NSException.hで宣言。

NSMallocException
廃止されています。現在使用されていません。
iOS 2.0以降で利用可能。
NSException.hで宣言。

NSObjectInaccessibleException
リモートオブジェクトがアクセスしてはいけないスレッドからアクセスされた時に生じる例外の名前です。
詳細はNSConnection(Mac OS X)のenableMultipleThreadsを参照してください。
iOS 2.0以降で利用可能。
NSException.hで宣言。

NSObjectNotAvailableException
オブジェクトがベンドされていないため、NSConnection(Mac OS X)のリモート側がオブジェクトへのメッセージ送信を拒否された時に生じる例外の名前です。
(『The comp.lang.objective-C FAQ listing 日本語訳/リモートオブジェクト間でメッセージを転送するにはどうすればよいですか』参照)
iOS 2.0以降で利用可能。
NSException.hで宣言。

NSDestinationInvalidException
内部アサーションが失敗し、分散オブジェクト内で予期しない状態が起こった時に生じる例外の名前です。
これは分散オブジェクト固有の例外です。
iOS 2.0以降で利用可能。
NSException.hで宣言。

NSPortTimeoutException
送信または受信動作中にポートで設定していた期限がタイムアウトした時に生じる例外の名前です。
これは分散オブジェクト固有の例外です。
iOS 2.0以降で利用可能。
NSException.hで宣言。

NSInvalidSendPortException
NSConnection(Mac OS X)の送信ポートが無効になった時に生じる例外の名前です。
これは分散オブジェクト固有の例外です。
iOS 2.0以降で利用可能。
NSException.hで宣言。

NSInvalidReceivePortException
NSConnection(Mac OS X)の受信ポートが無効になった時に生じる例外の名前です。
これは分散オブジェクト固有の例外です。
iOS 2.0以降で利用可能。
NSException.hで宣言。

NSPortSendException
送信時に一般的なエラーが発生しました。
これはNSPort固有の例外です。
iOS 2.0以降で利用可能。
NSException.hで宣言。

NSPortReceiveException
受信時に一般的なエラーが発生しました。
これはNSPort固有の例外です。
iOS 2.0以降で利用可能。
NSException.hで宣言。

NSOldStyleException
現在使用されていません。
iOS 2.0以降で利用可能。
NSException.hで宣言。

宣言
NSException.h


バージョン番号)



参考文献

Foundation Constants Reference

The comp.lang.objective-C FAQ listing 日本語訳/リモートオブジェクト間でメッセージを転送するにはどうすればよいですか

Start Developing iOS Apps Today(14)~ここから何処へ行くのか

2014. 04. 21
●ここからどこへ行くのか

Start Developing iOS Apps Todayでは、iOSアプリ開発の基礎を学びました。
この時点で、最初のフル機能を持つアプリの開発を開始する準備が整いました。
アプリをシンプルなコンセプトからApp Storeへ持って行くのは小さなタスクではありませんが、このドキュメントで学んできた工程と実習が正しい方向に案内します。

where_to_go_2x.png

ここから何処へ行くのかいくつかの指針を以下に示します。

  • 開発者として登録

    アプリケーションの配布に関するガイド」の「アカウントの管理(p.17)」では、Appleの開発者として登録する工程を説明しています。

  • 美しいアプリのインターフェイスの設計を学ぶ

    iOS ヒューマンインターフェイス ガイドライン」では、iOS用ユーザインターフェイスの慣習でアプリの一貫性を維持する方法を教えています。

  • 言語を学ぶ

    Objective-Cによるプログラミング」では、Objective-Cプログラミング言語でのクラスの定義、メッセージの送信、データのカプセル化、その他様々なタスクを実行する方法を説明しています。

  • 素晴らしいアプリを開発することを学ぶ

    iOSアプリケーション プログラミングガイド」では、iOSアプリを開発する上で知っておくべき必須事項を説明しています。

  • 貴方が利用可能なテクノロジーについて学ぶ

    iOS テクノロジーの概要」では、iOSでアプリが利用することができるフレームワークや他のテクノロジーを説明しています。

  • ドキュメントへのアクセス

    情報の検索」では、利用可能なドキュメントを最大限活用する方法について説明しています。

  • アプリのデバッグとテスト

    Xcodeの概要」の「アプリケーションのデバッグ(p.87)」では、Xcodeで完全にアプリのデバッグとテストをする方法を教えます。

  • アプリの出荷

    アプリケーションの配布に関するガイド」では、テストのためにデバイスをプロビジョニングし、App Storeにアプリを提出する工程を説明しています。



●次のレベルにToDoListアプリを持って行く

ToDoリストアプリで、貴方は多数の組み込み動作から利益を得ました。
貴方は理解を高めるためにこのアプリを試し続けたり、何か新しいことを始めることもできます。
ToDoリストアプリを継続する場合、調べる領域は以下の通りです。

  • 貴方のToDoリストは、アプリを終了して再起動した時に消滅します。
    時間が経っても存続するようにする方法を探索することを勧めます。

  • 貴方はアプリの全てのコントロールでデフォルトの外観を使用しています。
    UIKitには多くのコントロールの外観をカスタマイズするための機能が含まれています。
    このテクノロジーを使用して、様々なユーザインターフェイスのオプションを探求してください。

  • 貴方はユーザがリストに項目を追加して完了したと印す方法を与えましたが、項目を削除する機能はありません。
    テーブルビューには編集をサポートするための組み込み動作を持っており、行の削除や並べ替えも含まれているので、アプリに取り入れることを検討してください。

iOSアプリの開発を続けて行くと、ローカライズやアクセシビリティ、外観のカスタマイズを含め、探求して行く残っている概念やテクノロジーが膨大であることが分かります。
まずは興味の方向を定義することから始まります。
貴方が概念を学んで実践してきたことを忘れないでください。

興味深い新たなテクノロジーやフレームワーク、デザインパターンに遭遇した際に、それをテストするために小さなアプリを記述することを躊躇しないでください。

貴方が実行することができるものの幅広さは威圧的に思えるかもしれませんが、このドキュメントで示された分割統治を採用することによって、最初のアプリをすぐに出荷できることが分かるでしょう。
App Storeにアプリを出した後で、徐々に追加の機能の組み込みを継続することができます。
次の素敵な何かを楽しみにしている貴方の顧客を惹き付けて維持するために、新しい方法が常にあります。



参考文献

Apple/Start Developing iOS Apps Today

0 CommentsPosted in 資料

Start Developing iOS Apps Today(13)~情報の検索

2014. 04. 14
●情報の検索

アプリを開発する際、貴方は学んだものをすぐに利用できる情報を望むでしょう。
貴方はXcodeから離れることなく、全ての情報を得ることができます。

Xcodeには一般および概念のガイド、フレームワークやクラスリファレンス、焦点を合わせたヘルプ記事を含む、多くの様々なドキュメントが格納された大規模なドキュメントスイートが付属しています。
このドキュメントへは、使用方法を知りたいXcodeの領域上で右クリックしたり、コンテキスト指向のコードヘルプのためにメインプロジェクトウィンドウでQuick Helpペインを開いたり、ガイドや完全なAPIリファレンスを見つけるためにドキュメントウィンドウで検索するなど、多くの方法でアクセスすることができます。

finding_info_2x_20140327191830732.png



●Xcodeのガイダンスに関するコンテキストヘルプ記事の使用

Xcode自体を使用している時にヘルプが必要な場合はヘルプ記事を見ます。
ヘルプ記事は、新しいクラスの作成やInterface Builderでのカスタムクラスの設定、自動レイアウトでの問題の解決など、一般的なタスクを解決する方法を示します。

貴方が何をしようとしているかにもよりますが、XcodeのUI要素上でControl + クリックすることによって、いくつかのヘルプ記事にアクセスすることができます。
コンテキストメニューの最後のエントリ(この画像ではProject Navigator Help)を探してください。

contextualHelp_2x.png

一般的なヘルプ、またはControl + クリックでサポートされていない要素に関連付けられているタスクについての情報を下げしている場合は、XcodeのHelpメニューにあるコンテキストヘルプで検索することもできます。

helpMenu_2x.png



●一般および概念の概要についてのガイドの使用

新しいテクノロジーについて学ぶため、またはフレームワーク内の様々なクラスを組み込んで処理を行う方法を深く理解して身につけるためには、その概念のガイドを見てください。
ほとんどのCocoaフレームワークとテクノロジーは、Sprite Kit Programming GuideObjective-Cによるプログラミング、そして位置情報とマッププログラミングガイドなど、それらに関連付けされたプログラミングガイドがあります。

Xcodeでそれらのドキュメントを表示するには、Help > "Documentation and API Reference"を選択することで(またはOption + Shift + 0を押して)アクセスできるドキュメントビューアウィンドウを使用します。
Sprite Kitなど、単純にテクノロジーの名前を入力します。

findingSpriteKit_2x.png

結果は、コードを記述している時に最も有用である順番になります。
これはAPIリファレンスが最初にリストアップされ、続いてSDKやツールのガイドが表示されることを意味します。

ポップアップリストに適切な結果が表示されない場合はフィルタリングすることができ、結果の完全なセットを表示するにはShow All Resultsを選択します。

showAllResults_2x.png



●クラス情報についてのAPIリファレンスの使用

テクノロジーの様々な部分について学ぶためにガイドを読んでテクノロジーを使用するコードを書き始める際、貴方はおそらく個々のクラスで何ができるかの詳細を知る、または特定のメソッドを呼び出すための正確な方法を学ぶ必要があることに気付くでしょう。
この情報はAPIリファレンスドキュメントで提供されています。

例えば以前のチュートリアルで使用したNSStringクラスの詳細については、ドキュメントビューアウィンドウの検索欄でクラス名を入力します。

searchForClass_2x.png

Top Hitは通常貴方が望むもので、選択してReturnキーを押すとクラスのAPIリファレンスが見れます。

nsstringClassRef_2x.png

APIリファレンスドキュメントは、クラスが提供するメソッドのリスト、親クラスや採用されているプロトコルなどの情報が含まれ、個々のクラスについての情報に素早くアクセスすることができるように設計されています。
クラスについての一般的な情報を見るには、"More Related items"をクリックしてください。

nsstringInfo_2x.png

Related Itemsのポップオーバーは関連ガイドのリストを表示します。
NSStringで例えばリファレンス情報を掘り下げるのよりも、より概念的な概要を望む場合は「文字列操作プログラミングガイド」を読む必要があります。

特定のメソッドやプロパティを説明することに加えて、APIリファレンスドキュメントはクラスが実行することができる全てのタスクの概要も提供しています。

nsstringTasks_2x.png



●コンテキストソースコード情報についてのQuick Helpの使用

ソースエディタでコードを記述している時、Quick Helpペイン(View > Utilities > Show Quick Help Inspectorを選択)でAPIリファレンスドキュメントに簡単にアクセスできます。
貴方がコードを記述すると同時にQuick Helpペインが更新され、現在入力しているシンボルについての情報を表示します。

quickHelp_2x.png

またQuick Help情報をポップアップウィンドウで表示するには、ソースエディタでシンボルをOption + クリックすることができます。

optClickPopup_2x.png

Quick Helpペインやポップアップウィンドウでは、別のドキュメントビューアウィンドウでAPIリファレンスを開くことや、クリックしたシンボルの宣言を含むオリジナルのヘッダファイルを表示することができます。



●実際の使用を表示するためのサンプルコードの使用

書かれたドキュメントに加えて、サンプルコードのライブラリにアクセスすることもできます。
Quick Help、あるいはドキュメントビューアウィンドウでガイドやリファレンスを見る度に、指定したテクノロジーまたはクラスに関連したサンプルコードプロジェクトを示すエントリが表示されます。

quickHelp_2x_201403292326288f6.png

コードを検討することができるようにするには、Xcodeでダウンロードしてプロジェクトを開くために、いずれかのサンプルコードのエントリをクリックしてください。

プロジェクトの至る所にコードのコメントがあることに加え、より大きなコードサンプルの一部にはドキュメントも添付されています。
例えばSprite Kitのアドベンチャープロジェクトは「code:Explained Adventure」を伴います。

codeExplained_2x.png



参考文献

Apple/Start Developing iOS Apps Today

0 CommentsPosted in 資料

Start Developing iOS Apps Today(12)~iOSテクノロジー

2014. 04. 07
●iOSテクノロジー

貴方はシンプルなユーザインターフェイスと基本的な動作を持つアプリを作成する方法を学びました。
この時点で、完全な機能を持つアプリにするためプロジェクトに追加の動作を実装することを検討するのも良いでしょう。

どの機能を追加するか検討する際、最初から全てを実装する必要はないことを覚えておいてください。
iOSは、アプリに統合することができる(ゲームやメディアからセキュリティやデータ管理に至る)特定の機能のセットを定義するフレームワークを提供しています。
貴方は既にアプリのユーザインターフェイスの設計にUIKitフレームワークを、そしてコードに一般的なデータ構造や動作の組み込みにFoundationフレームワークを使用しています。
これらはiOSアプリ開発で使用される最も一般的なフレームワークの2つですが、更に役立つ多くのフレームワークがあります。

technologies_2x.png

この章は、アプリで採用を検討するためのテクノロジーとフレームワークの高レベルの概要です。
利用可能なテクノロジーを探索するための出発点として、この章を使用してください。
iOSで利用可能なテクノロジーの完全な概要は「iOSテクノロジーの概要」を参照してください。



●ユーザインターフェイス

iOSはアプリのユーザインターフェイスを作成し強化するための、多くの多くのフレームワークとテクノロジーを持っています。

UIKit
UIKitフレームワークは、タッチベースのユーザインターフェイスを作成するためのクラスを提供しています。
全てのiOSアプリはUIKitに基づいているため、このフレームワーク無しにアプリを発売することはできません。
UIKitは画面の描画やイベント処理、一般的なユーザインターフェイス要素を作成するためのインフラストラクチャを提供します。
またUIKitは画面上に表示するコンテンツを管理することによって、複雑なアプリを編成します。
詳細については「UIKit Framework Reference」を参照してください。

Core Graphics
Core Graphicsは、高品質なベクターグラフィックスやパスベースの描画、変換、画像、データ管理などを処理するための(低レベルなCベースの)主要なフレームワークです。
もちろんiOSでグラフィックスを作成するための最も簡単で効率的な方法は、UIKitフレームワークの標準のビューとコントロールでレンダリング済みの画像を使用して、iOSに描画の実行を任せることです。
UIKitは(パスや色、パターン、グラデーション、画像、テキスト、そして変換を含む)カスタム描画のためのクラスも提供している高レベルのフレームワークなので、可能な限りCore Graphicsの代わりに使用します。
詳細については「Core Graphics Framework Reference」を参照してください。

Core Animation
Core Animationは、高度なアニメーションと視覚的効果を作成することができるテクノロジーです。
UIKitはCore Animationテクノロジーの上に構築されたアニメーションを提供します。
UIKitの能力を超える高度なアニメーションが必要な場合は、直接Core Animationを使用することができます。
Core AnimationのインターフェイスはQuartz Coreフレームワークに含まれています。
Core Animationを使用して、回転や拡大縮小、変換などの操作をするレイヤオブジェクト階層を作成します。
Core Animationの使い慣れたビューのような抽象化を使用することによって、OpenGL ESなどの低レベルグラフィックスAPIを使用することなく、動的なユーザインターフェイスを作成することができます。
詳細については「Core Animationプログラミングガイド」を参照してください。



●ゲーム

iOS用のゲームを開発する時には、多数の様々なテクノロジーを探索します。

Game Kit
Game Kitフレームワークは、貴方のiOSゲームに追加するリーダーボードや成果、およびその他の機能を提供します。
詳細については「Game Kit Framework Reference」を参照してください。

Sprite Kit
Sprite Kitフレームワークは、任意のテクスチャ画像またはスプライトのアニメーションのためのグラフィックスサポートを提供します。
グラフィックエンジンであることに加えて、オブジェクトの振る舞いに物理的なサポートも含んでいます。
Sprite Kitは複雑なアニメーションチェーンを必要とするゲームや他のアプリにとって良い選択です。
(他の種類のユーザインターフェイスのアニメーションについては、代わりにCore Animationを使用してください。)
詳細については「Sprite Kit Programming Guide」を参照してください。

OpenGL ES
OpenGL ESは、ハードウェアアクセラレーションでの2Dおよび3D描画をサポートするためのツールを提供する低レベルフレームワークです。
OpenGL ES標準のAppleの実装では、ゲームスタイルのアプリでフルスクリーンでの高フレームレートを提供するために、デバイスのハードウェアと密接に連携します。
OpenGL ESは低レベルでハードウェアに焦点を当てたAPIなため、急な学習曲線を持ちアプリ全体の設計に重大な影響を与えます。
(より特殊な用途の高性能グラフィックスが必要なアプリの場合、Sprite KitやCore Animationの使用を検討してください。)
詳細については「iOS OpenGL ESプログラミングガイド」を参照してください。

Game Controller
Game Controllerフレームワークは、MacやiOSでバイスに接続されたコントローラを簡単に見つけることができます。
コントローラがデバイス上で検出された時、ゲームは通常のゲームプレイの一環として制御入力を読み込みます。
これらのコントローラは、ゲームを制御するプレイヤのために新たな方法を提供します。
Appleは、全てのコントローラがプレイヤとゲーム設計者の両方が信頼することができる制御要素の一貫した設定を持っていることを保証するために、ハードウェアコントローラの仕様を設計しています。
詳細については「Game Controller Framework Reference」を参照してください。



●データ

アプリのデータを処理する時、既存のフレームワークに利用することができる機能があるか検討してください。

Core Data
Core Dataフレームワークは、アプリのデータモデルを管理します。
Core Dataを使用すると、管理オブジェクトとして知られるモデルオブジェクトを作成します。
貴方はこれらのオブジェクト間の関係を管理し、フレームワークを介してデータに変更を加えます。
Core Dataは組み込みのSQLiteテクノロジーを利用して、効率的にデータの格納し管理します。
詳細については「Core Data Framework Reference」を参照してください。

Foundation
このガイドでは早い段階でFoundationで処理してきました。
FoundationフレームワークはObjective-Cクラスの基盤レイヤを定義しています。
便利なプリミティブオブジェクトクラスのセットを提供していることに加えて、このフレームワークはObjective-C言語では扱っていない動作を定義するいくつかのパラダイムが導入されています。
特にこのフレームワークは文字列や数値などの基本的なデータ型と、他のオブジェクトを格納するためのコレクションクラスを表すクラスが含まれています。
詳細については「Foundation Framework Reference」を参照してください。



●Media

Mediaフレームワークは、アプリでオーディオやビデオを処理するための機能を多数提供しています。

AVFoundation
AVFoundationは、時間ベースのオーディオビジュアルメディアの再生と作成に使用することができる、いくつかのフレームワークの一つです。
例えばメディアファイルの調査や作成、編集、または再エンコードにAV Foundationを使用することができます。
またデバイスから入力ストリームを取得し、キャプチャや再生中にリアルタイムでビデオを操作することもできます。
詳細については「AV Foundation Framework Reference」を参照してください。



参考文献

Apple/Start Developing iOS Apps Today

0 CommentsPosted in 資料






Bose QuietComfort 20
Calendar
03 | 2014/04 | 05
Sun Mon Tue Wed Thu Fri Sat
- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 - - -
Recent Articles
iTunes


Swift
Categories
Tips
Profile

水月杏香

Author:水月杏香
永遠の初心者プログラマ。

Wish List
WACOM


ARC
Technical Q&A
情報プロパティリストキー
Start Developing iOS Apps Today
BOSE

Bose QuietComfort 20
Reference
NSApplicationDelegateプロトコル
NSArrayクラス
NSAutoreleasePoolクラス
NSBundleクラス
NSBundle UIKit追加分
NSCalendarクラス
NSCoderクラス
NSCodingプロトコル
NSCopyingプロトコル
NSDataクラス
NSDateクラス
NSDateFormatterクラス
NSDictionaryクラス
NSEntityDescriptionクラス
NSEnumeratorクラス
NSErrorクラス
NSExceptionクラス
NSFetchRequestクラス
NSFileHandleクラス
NSFileManagerクラス
NSIndexPathクラス
NSIndexPath UIKit追加分
NSKeyedArchiverクラス
NSKeyedUnarchiverクラス
NSKeyValueCodingプロトコル
NSLocaleクラス
NSManagedObjectクラス
NSManagedObjectContextクラス
NSManagedObjectModelクラス
NSMutableArrayクラス
NSMutableCopyingプロトコル
NSMutableDictionaryクラス
NSMutableSetクラス
NSNotificationクラス
NSNotificationCenterクラス
NSNullクラス
NSNumberクラス
NSObjectクラス
NSObject UIKit追加分
NSObjectプロトコル
NSPersistentStoreクラス
NSPersistentStoreCoordinatorクラス
NSPredicateクラス
NSPropertyListSerializationクラス
NSRunLoopクラス
NSSetクラス
NSStringクラス
NSString UIKit追加分
NSTimerクラス
NSTimeZoneクラス
NSURLクラス
NSURLProtectionSpaceクラス
NSURLRequestクラス
NSUserDefaultsクラス
NSValueクラス

UIActionSheetクラス
UIActionSheetDelegateプロトコル
UIActivityIndicatorViewクラス
UIAlertViewクラス
UIAlertViewDelegateプロトコル
UIApplicationクラス
UIApplicationDelegateプロトコル
UIBarButtonItemクラス
UIBarItemクラス
UIButtonクラス
UIColorクラス
UIControlクラス
UIDatePickerクラス
UIDeviceクラス
UIEventクラス
UIFontクラス
UIGestureRecognizerクラス
UIImageクラス
UIImageViewクラス
UIKit Function
UILabelクラス
UINavigationControllerクラス
UINavigationItemクラス
UIPickerViewクラス
UIPickerViewDataSourceプロトコル
UIPickerViewDelegateプロトコル
UIPinchGestureRecognizerクラス
UIResponderクラス
UIScreenクラス
UIScrollViewクラス
UISearchBarクラス
UISearchBarDelegateプロトコル
UISegmentedControlクラス
UISliderクラス
UISwipeGestureRecognizerクラス
UISwitchクラス
UITableViewクラス
UITableViewCellクラス
UITableViewControllerクラス
UITableViewDataSourceプロトコル
UITableViewDelegateプロトコル
UITapGestureRecognizerクラス
UITextFieldクラス
UITextFieldDelegateプロトコル
UITextInputTraitsプロトコル
UITextViewクラス
UITextViewDelegateプロトコル
UIToolbarクラス
UITouchクラス
UIViewクラス
UIViewControllerクラス
UIWebViewクラス
UIWebViewDelegateプロトコル
UIWindowクラス

AVAudioPlayerクラス
AVAudioPlayerDelegateプロトコル

CADisplayLinkクラス
CAEAGLLayerクラス
CALayerクラス

CGAffineTransform
CGBitmapContext
CGColor
CGColorSpace
CGContext
CGGeometry
CGImage
CGPath

EAGLContextクラス
EAGLDrawableプロトコル

Foundation Constants
Foundation Data Types
Foundation Functions

MPMediaItemクラス
MPMediaItemArtworkクラス
MPMediaPlaylistクラス
MPMediaPropertyPredicateクラス
MPMediaQueryクラス
MPMusicPlayerControllerクラス

Randomization Services

System Sound Services
Amazon


OpenGL ES
SQLite
Monthly Archives
Recent Comments
Recent TrackBacks
RSS Link
Visitors
QR Code
QR