詳解Swift改訂版(02)〜関数

2016. 12. 28
この記事は詳解 Swift 改訂版(初版第1刷)を元に、Xcode 8.2.1(Swift 3.0.2)下における差異を記述しています。



CHAPTER 02 関数



●2.1 関数定義の基本


・関数定義の概要

List2-1 において、関数の引数のラベルは第1引数でも必要になりました。

func count(n: Int) -> Int {
    total += n
    return total
}

count(10)        // error: missing argument label 'n:' in call

Qiita/Xcode 8 Release Notes 日本語翻訳メモ」によると、Swift 3 で関数の引数は全ての引数でラベル付けされることになったようです。

これに関しては「Xcode 8 Release Notes(Xcode 8.0/Swift/New Features)」に、その旨の記述があります。

「関数の引数は現在、全ての関数の引数に渡って一貫したラベル付けを行うようになりました。
このアップデートでは第1引数の宣言が、これまでの第2以降の引数の動作と一致するようになりました。

以前に書かれたコードでは、

func Resolved Issues(x: Int, y: Int) {}
Resolved Issues(1, y: 2)

func bar(a a: Int, b: Int) {}
bar(a: 3, b: 4)

となっていましたが、現在は次のように記述します。

func Resolved Issues(_ x: Int, y: Int) {}
Resolved Issues(1, y: 2)
func bar(a: Int, b: Int) {}
bar(a: 3, b: 4)

(
SE-0046)」

したがって関数 count の呼び出しは以下のようになります。

count(n: 10)


・外部引数名

上記の通り関数は全ての引数でラベル付けされるようになりましたので、これまでの Objective-C のメソッド記法のように関数名に第1引数の意味を含める必要は無くなったと思われます。
今後はシンプルな関数名で構わないでしょう。

List2-2 を例にすると、

func buyProduct(product:Int, price:Int, quantity:Int) {
    print("Product:\(product), amount = \(price * quantity)")
}

buyProduct(product: 19090, price: 180000, quantity: 1)        // Product:19090, amount = 180000

関数名に第1引数の意味を含み、且つ第1引数のラベルもあって冗長になりますので、関数名から第1引数の意味を取り除いた方がいいでしょう。

func buy(product:Int, price:Int, quantity:Int) {
    print("Product:\(product), amount = \(price * quantity)")
}

buy(product: 19090, price: 180000, quantity: 1)        // Product:19090, amount = 180000

また今回の例で言えば、関数名 buy だけでは単純すぎて心許なく、引数の product はカタログ番号であることから、関数名をそのままに第1引数名を number とする手もあるでしょう。

func buyProduct(number:Int, price:Int, quantity:Int) {
    print("Number:\(number), amount = \(price * quantity)")
}

buyProduct(number: 19090, price: 180000, quantity: 1)        // Number:19090, amount = 180000

もしくは「_」で第1引数の外部引数名を省略することで、これまでと同じ挙動にすることもできます。

func buyProduct(_ product:Int, price:Int, quantity:Int) {
    print("Product:\(product), amount = \(price * quantity)")
}

buyProduct(19090, price: 180000, quantity: 1)        // Product:19090, amount = 180000

いずれにせよ、これまでの記法には再考の余地があります。

※ 以降において、第1引数のラベル付けに関する修整については、分かり易さのために「_」で呼び出し時の外部引数名を省略することにし、特別な理由がなければ説明を割愛します。


・外部引数名の指定と省略

上記の通り第1引数も自動的に外部引数名が付与されることになりましたが、

func area(h:Double, w:Double) -> Double {
    return h * w
}

let a = area(h: 10.0, w: 12.5)

これまでと同様、内部引数名と別途に外部引数名を指定することもできます。

func area(height h:Double, width w:Double) -> Double {
    return h * w
}

let a = area(height: 10.0, width: 12.5)



●2.2 関数定義におけるさまざまな設定


・inout 引数

List 2-3 において、inout 引数でエラーが出るようになりました。

func mySwap(inout _ a:Int, inout _ b:Int) {        // 'inout' before a parameter name is not allowed. place it before the parameter type instead

Qiita/Xcode 8 Release Notes 日本語翻訳メモ」によると、Swift 3 で inout 引数は : の後ろに書くことになったようです。

これに関しては「Xcode 8 Release Notes(Xcode 8.0/Swift/New Features)」に、その旨の記述があります。

「inout 属性の場所が : の後ろ且つ引数型の前に移動されています。
例えば以前に書かれたコードでは、

func Resolved Issues(inout x: Int) {
}

ですが、現在は次のように記述する必要があります。

func Resolved Issues(x: inout Int) {
}

(SE-0031)」


したがって関数 mySwap の引数は以下のようになります。

func mySwap(_ a: inout Int, _ b: inout Int) {


・関数の引数に規定値を指定する

List2-4 の関数 setFont の実行結果の例で、規定値を指定した引数の順序を入れ替えた場合にエラーが出るようになりました。

setFont(name: "Times", bold:true, size:18.0)        // error: argument 'size' must precede argument 'bold'

Qiita/Xcode 8 Release Notes 日本語翻訳メモ」によると、Swift 3 で規定値を持つ引数は宣言順に指定することになったようです。

これに関しては「Xcode 8 Release Notes(Xcode 8.0/Swift/New Features)」に、その旨の記述があります。

「デフォルト値を持つ関数の引数は、現在宣言順に指定する必要があります。
呼び出し時に提供する引数の位置は、常に宣言された順序で関数に渡す必要があります。

func requiredArguments(a: Int, b: Int, c: Int) {}
func defaultArguments(a: Int = 0, b: Int = 0, c: Int = 0) {}

requiredArguments(a: 0, b: 1, c: 2)
requiredArguments(b: 0, a: 1, c: 2)        // error
defaultArguments(a: 0, b: 1, c: 2)
defaultArguments(b: 0, a: 1, c: 2)        // error

指定された引数が宣言の順序に従う限り、デフォルト値を持つ任意のラベル付き引数を省略することができます。

defaultArguments(a: 0)        // ok
defaultArguments(b: 1)        // ok
defaultArguments(c: 2)        // ok
defaultArguments(a: 1, c: 2)        // ok
defaultArguments(b: 1, c: 2)        // ok
defaultArguments(c: 1, b: 2)        // error

(SE-0060)」


したがって関数 setFont の引数は以下のようになります。

setFont(name: "Times", size:18.0, bold:true)        // Times 18.0 [B]


・引数の値を処理中に変更できるようにする

List2-6 の関数 dayOfWeek において、引数への var 修飾語の付与はエラーが出るようになりました。

func dayOfWeek(var _ m:Int, _ d:Int, var year y:Int = 2016) -> Int {        // error: parameters may not have the 'var' specifier

Qiita/Xcode 8 Release Notes 日本語翻訳メモ」によると、Swift 3 で関数の引数で var が使えなくなったようです。

これに関しては「Xcode 8 Release Notes(Xcode 8.0/Swift/New Features)」に、その旨の記述があります。

「var はもはや関数の引数属性として認められません。
コンパイラは関数本体にシャドウコピーを作成するための修正を提供します。
例えば以前に書かれたコードが、

func Resolved Issues(var x: Int) {
}

となっていた場合、現在は次のように記述する必要があります。

func Resolved Issues(x: Int) {
  var x = x
}

(
SE-0003)」

したがって関数 dayOfWeek の引数指定は以下のようになります。

func dayOfWeek(_ m:Int, _ d:Int, year y:Int = 2016) -> Int {
    var m = m, y = y

また本文中で「変更しないことを明示するために let という修飾語を使うことができます。」とありますが、「Qiita/Xcode 8 Release Notes 日本語翻訳メモ」にSwift 3で無駄な let は削除されたとあり、「Xcode 8 Release Notes(Xcode 8.0/Swift/New Features)」に、その旨の記述があります。

「let はもはや関数の引数属性として認められません。
コンパイラは関数の宣言から削除するための修正を提供します。(
SE-0053)」

例えば関数 dayOfWeek の引数 d に let を指定すると警告が出ます。

func dayOfWeek(_ m:Int, let _ d:Int, year y:Int = 2016) -> Int {        // 'let' as a parameter attribute is not allowed


・返り値を必ず使うための指定

返り値を伴う関数に @warn_unused_result 属性を指定すると警告が出るようになりました。

@warn_unused_result        // 'warn_unused_result' attribute behavior is now the default
func dayOfWeek(_ m:Int, _ d:Int, year y:Int = 2016) -> Int {

Tomorrow Never Comes./[Swift]関数の返り値を使わない時は」によると、Swift 3 から関数の返り値を使用しない場合はデフォルトで警告が出るようになったため、@warn_unused_result は不要になったようです。

逆に返り値を使用しないことを明示するには @discardableResult 属性を指定することになります。

ただしプレイグラウンドでは、返り値を伴う関数を返り値を使用しない形で実行しても警告が出ないようなので注意が必要です。



Qiita/Xcode 8 Release Notes 日本語翻訳メモ

Tomorrow Never Comes./[Swift]関数の返り値を使わない時は

詳解Swift 第3版(Amazon)
 

詳解Swift改訂版(01)〜Swiftでプログラミング

2016. 12. 21
この記事は詳解 Swift 改訂版(初版第1刷)を元に、Xcode 8.2.1(Swift 3.0.2)下における差異を記述しています。



CHAPTER 01 Swiftでプログラミング



●1.1 データ型と変数


・変数の定義

これまで変数や定数などの型を調べるために .dynamicType プロパティを使用していましたがエラーが出るようになりました。

var age = 18
age.dynamicType        // '.dynamicType' is deprecated. Use 'type(of: ...)' instead

Qiita/Xcode 8 Release Notes 日本語翻訳メモ」によると、Swift 3 で .dynamicType プロパティは廃止になり type(of:) 関数が追加されたようです。

type(of: age)        // Int.Type


・演算子の種類

インクリメント(++)、デクリメント(--)演算子は Swift 3 で削除されたため、利用することはできません。
(「Build Insider/Swift 3.0でなぜ「Cスタイルのforループ」「++/--演算子」などの仕様が廃止されたのか」参照)

var count = 0
count++        // '++' is unavailable: it has been removed in Swift 3
count += 1        // Fix-it Replace "++" with " += 1"



●1.2 制御構文


・for 文

C 様式の for 文は Swift 3 で削除されたため利用することはできませんので、for-in 文に書き換える必要があります。
(「Build Insider/Swift 3.0でなぜ「Cスタイルのforループ」「++/--演算子」などの仕様が廃止されたのか」参照)

for var i = 1; i <= 9; i++ {
// error: C-style for statement has been removed in Swift 3
// error: '++' is unavailable: it has been removed in Swift 3



for i in 1...9 {

ただ List1-4 のように初期化部で複数の変数を初期化するような記述はできなさそうなので、内容に応じて適宜修正する必要があります。

for var i=0, m=1; i < 32; i++, m *= 2 {
// error: C-style for statement has been removed in Swift 3
// error: '++' is unavailable: it has been removed in Swift 3

    print("\(i)  \(m)")
}


var m = 1
for i in 0..<32 {
    print("\(i)  \(m)")
    m *= 2
}


・ラベル付きのループ文

List1-7 について、前述の通りインクリメント演算子および C 様式の for 文は Swift 3 で削除されたため利用することはできませんので、for-in 文に書き換える必要があります。

for ; w < firstDay; w++ {
// error: C-style for statement has been removed in Swift 3
// error: '++' is unavailable: it has been removed in Swift 3

    print("    ", terminator:"")
}
var d = 1
loop: while true {
    for ; w < 7; w++ {
    // error: C-style for statement has been removed in Swift 3
    // error: '++' is unavailable: it has been removed in Swift 3

        let pad = d < 10 ? " " : ""
        print(pad + "  \(d)", terminator:"")
        if ++d > days {
        // error: '++' is unavailable: it has been removed in Swift 3
            print("")
            break loop
        }
    }
    print("")
    w = 0
}


for _ in w..<firstDay {        // 内部定数はループ内で使わないので省略
    print("    ", terminator:"")
}
w = firstDay        // for 文でインクリメントされていた部分の補正
var d = 1
loop: while true {
    for _ in w..<7 {        // こちらも内部定数はループ内で使わないので省略
        let pad = d < 10 ? " " : ""
        print(pad + "  \(d)", terminator:"")
        d += 1        // if 文の条件式内では演算ができないので事前にインクリメント
        if d > days
{
            print("")
            break loop
        }
    }
    print("")
    w = 0
}



●1.3 簡単な実行方法


・プレイグラウンド

List1-9 について、for-in 文に書き換える際に範囲演算子を使用するには整数で指定しなければならないので、定数 i を Double 型に変換する必要があります。

for var i = 1.0; i <= 20.0; i++ {
// error: C-style for statement has been removed in Swift 3
// error: '++' is unavailable: it has been removed in Swift 3



for i in 1...20 {
    e += t
    t /= Double(i)
}
print("e=\(e)")        // e=2.71828182845905


※ 以降において、インクリメント/デクリメント演算子および C 様式の for 文の修正については、根本的にコードを見直す必要がある場合を除き割愛します。



Qiita/Xcode 8 Release Notes 日本語翻訳メモ

Build Insider/Swift 3.0でなぜ「Cスタイルのforループ」「++/--演算子」などの仕様が廃止されたのか

詳解Swift 第3版(Amazon)
 

サイトマップ

2016. 12. 14
●カテゴリ

Swift

目指せ!iPhoneアプリ開発エキスパート
iPhone SDKの教科書
iPhone SDKプログラミング大全
基礎からのiPhone SDK改訂版
はじめてのiPhoneプログラミング
初めてのiOSプログラミング 第2版
詳細!Objective-C iPhoneアプリ開発 入門ノート
リファレンス
SQLite
OpenGL ES
資料



●Swift

詳解Swift改訂版(01)〜Swiftでプログラミング
詳解Swift改訂版(02)〜関数
詳解Swift改訂版(03)〜構造体
詳解Swift改訂版(04)〜オプショナル
詳解Swift改訂版(05)〜基本的なデータ型
詳解Swift改訂版(06)〜パターン
詳解Swift改訂版(07)〜演算子
詳解Swift改訂版(08)〜クラスと継承
詳解Swift改訂版(09)〜メモリ管理
詳解Swift改訂版(10)〜プロトコル
詳解Swift改訂版(11)〜拡張
詳解Swift改訂版(12)〜エラー処理
詳解Swift改訂版(13)〜クロージャ
詳解Swift改訂版(14)〜ジェネリクス

詳解Swift(1)〜Swiftでプログラミング
詳解Swift(2)〜関数
詳解Swift(3)〜構造体
詳解Swift(4)〜オプショナル
詳解Swift(5)〜基本的なデータ型
詳解Swift(6)〜パターン
詳解Swift(7)〜演算子
詳解Swift(8)〜クラスと継承
詳解Swift(9)〜メモリ管理
詳解Swift(10)〜プロトコル
詳解Swift(11)〜拡張
詳解Swift(12)〜クロージャ
詳解Swift(13)〜ジェネリクス
詳解Swift(14)〜C/Objective-Cとのデータ受け渡し

Swift 2における文字列



●目指せ!iPhoneアプリ開発エキスパート

まず動かしてみてから考える(1)
まず動かしてみてから考える(2)
まず動かしてみてから考える(3)
まず動かしてみてから考える(4)



●iPhone SDKの教科書

C言語のメモ書き
オブジェクト指向プログラミングのメモ書き
Objective-C言語のメモ書き(1)
Objective-C言語のメモ書き(2)
カウンターを作ってみた
スマッシュを作ってみた(1)
スマッシュを作ってみた(2)
バランスを作ってみた
クロックを作ってみた(1)
クロックを作ってみた(2)
エイジを作ってみた
パイルを作ってみた
『iPhone SDKの教科書』まとめ



●iPhone SDKプログラミング大全

『iPhone SDKプログラミング大全』を始めてみた
Objective-C言語のメモ書き(3)
Objective-C言語のメモ書き(4)
Objective-C言語のメモ書き(5)
Objective-C言語のメモ書き(6)
Objective-C言語のメモ書き(7)
FoundationとCore Foundation(1)
FoundationとCore Foundation(2)
FoundationとCore Foundation(3)
FoundationとCore Foundation(4)
Foundation(文字列)
Foundation(コレクション)
Foundation(日付と時間)
Foundation(数値)
Foundation(アーカイブ)
Foundation(ファイル管理)
Foundation(バンドル)
Foundation(初期設定)
Foundation(通知)
Foundation(タイマー)
サンドボックス
UIKitの概要
アプリケーションのライフサイクル(1)
アプリケーションのライフサイクル(2)
アプリケーションのライフサイクル(3)
MVCアーキテクチャ
ターゲット/アクションモデル
テーブル(1)
チュートリアル:Hello World!
テーブル(2)
テーブル(3)
ビューコントローラ
チュートリアル:ナビゲーションバーを使う
『iPhone SDKプログラミング大全』まとめ



●基礎からのiPhone SDK改訂版

『基礎からのiPhone SDK改訂版』を始めてみた
ウェブブラウザの作成
ウェブブラウザの使用しているクラス
ウェブブラウザのアクションメソッド
UIApplicationDelegateプロトコル
UIWebViewDelegateプロトコル
ウェブブラウザのデリゲート
ウェブブラウザのサンプルコードの補足
言語環境の用語
言語環境の言語
言語環境の書式
クロックの作成
クロックの使用しているクラス
クロックのメソッド
クロックでロケールを指定する
クロックでカレンダーを指定する
日付フォーマットのパターン
Core Audioの復習
クロックに時報を追加する
クロックに独自クラスを導入する(1)
クロックに独自クラスを導入する(2)
クロックに独自クラスを導入する(3)
クロックに独自クラスを導入する(4)
クロックに独自クラスを導入する(5)
クロックに独自クラスを導入する(6)
スライドショーの作成
スライドショーの使用しているクラス(1)
スライドショーの使用しているクラス(2)
スライドショーのメソッド(1)
スライドショーのメソッド(2)
スライドショーのメソッド(3)
スライドショーの画像配列をXML化
スライドショーのフルスクリーン化(1)
スライドショーのフルスクリーン化(2)
フルスクリーン化で使用しているクラス(1)
フルスクリーン化で使用しているクラス(2)
フルスクリーン化で使用しているクラス(3)
スライドショーの簡易アニメーション(1)
スライドショーの簡易アニメーション(2)
スライドショーの簡易アニメーション(3)
トランジションアニメーション(1)
トランジションアニメーション(2)
トランジションアニメーション(3)
トランジションアニメーション(4)
自前トランジション
メモ帳の作成(1)
メモ帳の作成(2)~テキストビュー
メモ帳の作成(3)~フォント
メモ帳の作成(4)~ピッカービュー
メモ帳の作成(5)~アクションシート
メモ帳の作成(6)~アラート
メモ帳の作成(7)~設定値の保存
メモ帳の作成(8)~ローカライズ
音楽プレイヤの作成
音楽プレイヤで使用しているクラス
音楽プレイヤのメソッド(1)
音楽プレイヤのメソッド(2)
アプリケーション音楽プレイヤ
検索条件によるクエリの絞り込み
指定したプレイリストの再生
『基礎からのiPhone SDK改訂版』まとめ(1)
『基礎からのiPhone SDK改訂版』まとめ(2)
『基礎からのiPhone SDK改訂版』まとめ(3)
『基礎からのiPhone SDK改訂版』おまけ



●はじめてのiPhoneプログラミング

『はじめてのiPhoneプログラミング』を始めてみた
Hello World
Button Fun
Control Fun(1)~Image ViewとText Field
Control Fun(2)~SliderとLabel
Control Fun(3)~SwitchとSegmented Control
Control Fun(4)~Action SheetとAlert
Control Fun(5)~Sample Code
Autosize(1)~Autosizing
Autosize(2)~コードによる変更
Swap~ビューの切り替え
View Switcher(1)~下準備
View Switcher(2)~SwitchViewController
View Switcher(3)~コンテントビューの実装
View Switcher(4)~トランジションのアニメ化
View Switcher(5)~リファクタリング
Pickers(1)~下準備
Pickers(2)~TabBarController
Pickers(3)~DatePicker
Pickers(4)~SingleComponentPicker
Pickers(5)~DoubleComponentPicker
Pickers(6)~DependentComponentPicker(1)
Pickers(7)~DependentComponentPicker(2)
Pickers(8)~CustomPicker(1)
Pickers(9)~CustomPicker(2)
Pickers(10)~サンプルコードとの差異
Simple Table(1)~テキストの表示
Simple Table(2)~画像の追加
Simple Table(3)~デリゲートによる処理
Simple Table(4)~フォントと行高の変更
Simple Table(5)~サンプルコードとの差異
Cells(1)~サブビューによるカスタマイズ
Cells(2)~ラベルの背景色
Cells(3)~サブクラスによるカスタマイズ
Cells(4)~nibファイルからの読み込み
Sections(1)~セクションとインデックス
Sections(2)~カテゴリ
Sections(3)~検索バーの追加(1)
Sections(4)~検索バーの追加(2)
Sections(5)~サンプルコードとの差異
Nav(1)~概要とルートコントローラ
Nav(2)~抽象クラス
Nav(3)~ルートビューコントローラ
Nav(4)~Disclosure Buttons(1)
Nav(5)~Disclosure Buttons(2)
Nav(6)~Disclosure Buttons(3)
Nav(7)~Check One
Nav(8)~Row Controls(1)
Nav(9)~Row Controls(2)
Nav(10)~Move Me(1)
Nav(11)~Move Me(2)
Nav(12)~Move Me(3)
Nav(13)~Delete Me(1)
Nav(14)~Delete Me(2)
Nav(15)~Delete Me(3)
Nav(16)~Detail Edit(1)
Nav(17)~Detail Edit(2)
Nav(18)~Detail Edit(3)
Nav(19)~Detail Edit(4)
Nav(20)~Detail Edit(5)
Nav(21)~Detail Edit(6)
Nav(22)~Detail Edit(7)
AppSettings(1)~概要
AppSettings(2)~プロジェクトの作成
AppSettings(3)~Settings.bundle(1)
AppSettings(4)~Settings.bundle(2)
AppSettings(5)~Settings.bundle(3)
AppSettings(6)~MainViewController(1)
AppSettings(7)~MainViewController(2)
AppSettings(8)~MainViewController(3)
AppSettings(9)~FlipsideViewController
AppSettings(10)~UIViewControllerの状態通知
Persistence(1)~アプリケーションのディレクトリ構成
Persistence(2)~ディレクトリパスの入手
Persistence(3)~プロパティリストへの保存(1)
Persistence(4)~プロパティリストへの保存(2)
Persistence(5)~アーカイブへの保存(1)
Persistence(6)~アーカイブへの保存(2)
Persistence(7)~SQLite3への保存(1)
Persistence(8)~SQLite3への保存(2)
Persistence(9)~SQLite3への保存(3)
Persistence(10)~SQLite3への保存(4)
Persistence(11)〜SQLite3への保存(5)
Persistence(12)〜SQLite3への保存(6)
Persistence(13)~SQLite3への保存(7)
Persistence(14)~Core Dataでの保存(1)
Persistence(15)~Core Dataでの保存(2)
Persistence(16)~Core Dataでの保存(3)
Persistence(17)~Core Dataでの保存(4)
Persistence(18)~Core Dataでの保存(5)
QuartzFun(1)
QuartzFun(2)~ビューコントローラの編集
QuartzFun(3)~nibファイルの編集
QuartzFun(4)~ビューの編集(1)
QuartzFun(5)~ビューの編集(2)
QuartzFun(6)~タッチイベントの編集
QuartzFun(7)~サンプルコードとの差異
GLFun(1)~iOSでのOpenGL ESの利用
GLFun(2)~QuartzFunとGLFunの違い
GLFun(3)~QuartzFunとの共通部分の実装
GLFun(4)~OpenGL ESへの対応と作業工程
GLFun(5)~OpenGLES2DViewクラス(1)
GLFun(6)~OpenGLES2DViewクラス(2)
GLFun(7)~OpenGLES2DViewクラス(3)
GLFun(8)~OpenGLES2DViewクラス(4)
GLFun(9)~OpenGLES2DViewクラス(5)
GLFun(10)~GLFunViewクラス(1)
GLFun(11)~GLFunViewクラス(2)
GLFun(12)~Texture2Dクラス(1)
GLFun(13)~Texture2Dクラス(2)
GLFun(14)~Texture2Dクラス(3)
GLFun(15)~Texture2Dクラス(4)
GLFun(16)~Texture2Dクラス(5)
GLFun(17)~Texture2Dクラス(6)
GLFun(18)~Texture2Dクラス(7)
GLFun(19)~Texture2Dクラス(8)
GLFun(20)~Texture2Dクラス(9)
GLFun(21)~Texture2Dクラス(10)
GLFun(22)~Texture2Dクラス(11)
GLFun(23)~Texture2Dクラス(12)
GLFun(24)~GLFunViewクラス(3)
GLFun(25)~サンプルコードとの差異
OpenGL ESテンプレート(1)~GLFunAppDelegateクラス
OpenGL ESテンプレート(2)~GLFunViewControllerクラス(1)
OpenGL ESテンプレート(3)~GLFunViewControllerクラス(2)
OpenGL ESテンプレート(4)~GLFunViewControllerクラス(3)
OpenGL ESテンプレート(5)~GLFunViewControllerクラス(4)
OpenGL ESテンプレート(6)~GLFunViewControllerクラス(5)
OpenGL ESテンプレート(7)~GLFunViewControllerクラス(6)
OpenGL ESテンプレート(8)~GLFunViewControllerクラス(7)
OpenGL ESテンプレート(9)~GLFunViewControllerクラス(8)
OpenGL ESテンプレート(10)~GLFunViewControllerクラス(9)
OpenGL ESテンプレート(11)~シェーダプログラム
OpenGL ESテンプレート(12)~EAGLViewクラス
OpenGL ESテンプレート(13)~処理フロー
GLFun(26)~OpenGL ESテンプレートの利用(1)
GLFun(27)~OpenGL ESテンプレートの利用(2)
GLFun(28)~OpenGL ESテンプレートの利用(3)
GLFun(29)~OpenGL ESテンプレートの利用(4)
GLFun(30)~OpenGL ESテンプレートの利用(5)
GLFun(31)~OpenGL ESテンプレートの利用(6)
GLFun(32)~OpenGL ESテンプレートの利用(7)
TouchExplorer
Swipes(1)~イベント処理メソッド
Swipes(2)~Gesture Recognizer
Swipes(3)~マルチプルスワイプ(イベント処理メソッド)
Swipes(4)~マルチプルスワイプ(Gesture Recognizer)
TapTaps(1)~イベント処理メソッド(1)
TapTaps(2)~イベント処理メソッド(2)
TapTaps(3)~Gesture Recognizer
PinchMe(1)~イベント処理メソッド
PinchMe(2)~Gesture Recognizer
CheckPlease(1)~イベント処理メソッド
CheckPlease(2)~Gesture Recognizer
LocalizeMe(1)
LocalizeMe(2)
LocalizeMe(3)
『はじめてのiPhoneプログラミング』まとめ



●初めてのiOSプログラミング 第2版

iOSデバイスの準備

Xcode 3.2.6から4.6.2でのテンプレートの変化(1)〜main.m
Xcode 3.2.6から4.6.2でのテンプレートの変化(2)〜AppDelegate
Xcode 3.2.6から4.6.2でのテンプレートの変化(3)〜ViewController



●詳細!Objective-C iPhoneアプリ開発 入門ノート

NSLogでNSInteger変数を出力する際の注意
乱数生成関数の差異



●リファレンス

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



●SQLite

SQLiteのC/C++インターフェイスの導入
新しいデータベース接続を開く
データベース接続を閉じる
ワンステップクエリ実行インターフェイス
SQLステートメントのコンパイル
SQLステートメントの評価
クエリからの結果値
準備ステートメントオブジェクトの破棄
準備ステートメントへの値のバインド
メモリ割り当てサブシステム

結果コード
SQLステートメントオブジェクト

SQLiteによるSQLの解釈
INSERT
REPLACE
CREATE TABLE
SELECT



●OpenGL ES

OpenGL ES 1.1
OpenGL ES 2.0

OpenGL ESのデータ型

GLSL~4.1 基本の型
GLSL~4.3 ストレージ修飾子
GLSL~4.5.2 精度修飾子
GLSL~5.5 ベクトル要素
GLSL~7 組み込み変数
GLSL~8.1 角度と三角関数
GLSL~8.7 テクスチャ参照関数

OpenGL ESを使用したiOS用3Dグラフィックス(1)
OpenGL ESを使用したiOS用3Dグラフィックス(2)
OpenGL ESを使用したiOS用3Dグラフィックス(3)



●資料

iPhone App開発の下準備
Apple IDの取得
iPhone Developer Connectionの登録
iPhone SDKのインストール
iPhone Developer Programの登録(1)
iPhone Developer Programの登録(2)
新規プロジェクトのテンプレート
Interface Builder
初めてのプログラムHalloWorld
iPhone OSの概要
予備知識無しで始めるObjective-C
Xcodeのプロジェクトウィンドウ
Xcodeのグループとファイル
Xcodeのテキストエディタ
Xcodeのプロパティリストエディタ
Core Audioテクノロジーの概要
iPhone Dev Centerの登録情報更新
バイト列
文字コードのエンコーディング
NSStringオブジェクトの書式
可変引数リスト
ロケールのリージョンコード
NSString(1)
NSString(2)
NSString(3)
NSString(4)
NSString(5)
NSString(6)
NSString(7)
NSStringクラスメソッド一覧
CombiningとComposition
Core Foundationのエンコーディング
3.3.1節改訂とApp Store審査基準
コレクションのコピー
アプリケーション・スキーマの設定
ランタイム構成のガイドライン

QA1588 iPhoneとiPadアプリでの自動ビュー方向のサポート
QA1633 貴方のアプリや会社を読み易くするApp Storeへの短縮リンクの作成
QA1686 iPadとiPhoneのアプリアイコン
QA1688 UIViewControllerがデバイスと一緒に回転しないのは何故ですか?
QA1689 iPadアプリの方向のサポート
QA1709 何故iOS 4でアプリケーションを起動すると画面が黒くなる?

iOSデバイスとiOSの対応表
iOSデバイスのハード仕様

情報プロパティリストキー(0)~コンテンツ
情報プロパティリストキー(1)~Info.plistキーについて
情報プロパティリストキー(2)~情報プロパティリストファイルについて
情報プロパティリストキー(3)~Core Foundationキー(1)
情報プロパティリストキー(4)~Core Foundationキー(2)
情報プロパティリストキー(5)~Core Foundationキー(3)
情報プロパティリストキー(6)~Launch Servicesキー
情報プロパティリストキー(7)~Cocoaキー(1)
情報プロパティリストキー(8)~Cocoaキー(2)
情報プロパティリストキー(9)~Mac OS Xキー
情報プロパティリストキー(10)~UIKitキー(1)
情報プロパティリストキー(11)~UIKitキー(2)

※旧版
Start Developing iOS Apps Today(1)~概要
Start Developing iOS Apps Today(2)~セットアップ
Start Developing iOS Apps Today(3)~行動を起こす
Start Developing iOS Apps Today(4)~ツール
Start Developing iOS Apps Today(5)~言語
Start Developing iOS Apps Today(6)~基本タスク
Start Developing iOS Apps Today(7)~フレームワーク
Start Developing iOS Apps Today(8)~デザインパターン
Start Developing iOS Apps Today(9)~ヒューマンインターフェイスデザイン
Start Developing iOS Apps Today(10)〜アプリ設計
Start Developing iOS Apps Today(11)〜App Store
Start Developing iOS Apps Today(12)〜情報の検索
Start Developing iOS Apps Today(13)〜ここから何処へ行くのか
Start Developing iOS Apps Today(sup.1)〜Xcodeでのワークフローの管理
Start Developing iOS Apps Today(sup.2)〜Objective-Cコードの記述
Start Developing iOS Apps Today(sup.3)〜基礎プログラミングスキルの習得
Start Developing iOS Apps Today(sup.4)〜主要フレームワークの概要
Start Developing iOS Apps Today(sup.5)〜コードとフレームワークの統合
Start Developing iOS Apps Today(sup.6)〜デザインパターンを使ったアプリの合理化
Start Developing iOS Apps Today(sup.7)〜ユーザを意識したデザイン
Start Developing iOS Apps Today(sup.8)〜アプリ設計の注意
Start Developing iOS Apps Today(sup.9)〜アプリのコアオブジェクトを知る
Start Developing iOS Apps Today(sup.10)〜アプリの国際化
Start Developing iOS Apps Today(sup.11)〜App Storeに提出するための準備
Start Developing iOS Apps Today(sup.12)〜迅速なドキュメントの検索

※新版
Start Developing iOS Apps Today(1)~セットアップ
Start Developing iOS Apps Today(2)~チュートリアル:基礎
Start Developing iOS Apps Today(3)~アプリ開発の工程
Start Developing iOS Apps Today(4)~ユーザインターフェイスの設計
Start Developing iOS Apps Today(5)~インタラクションの定義
Start Developing iOS Apps Today(6)~チュートリアル:ストーリーボード
Start Developing iOS Apps Today(7)~データの組み込み
Start Developing iOS Apps Today(8)~デザインパターンの使用
Start Developing iOS Apps Today(9)~Foundationでの処理
Start Developing iOS Apps Today(10)~カスタムクラスの記述
Start Developing iOS Apps Today(11)~チュートリアル:データの追加
Start Developing iOS Apps Today(12)~iOSテクノロジー
Start Developing iOS Apps Today(13)~情報の検索
Start Developing iOS Apps Today(14)~ここから何処へ行くのか

What's New in iOS〜iOS 5.0〜自動参照カウント
ARCへの移行のリリースノート

ストーリーボードへの変換のリリースノート

Xcode 4.4の新機能

iOS 6のiOS SDKリリースノート

iOS 7 UI移行ガイド(1)〜移行のための準備(1)〜始める前に
iOS 7 UI移行ガイド(2)〜移行のための準備(2)〜プロジェクトの適用範囲
iOS 7 UI移行ガイド(3)〜移行のための準備(3)〜iOS 6のサポート
iOS 7 UI移行ガイド(4)〜UIの更新(1)〜外観と動作
iOS 7 UI移行ガイド(5)〜UIの更新(2)〜バーとバーボタン

arc4random(3)
random(3)
rand(3)
arc4random(3)改

iOSデバイスのハード仕様

2016. 12. 13
iPhoneのハード仕様

iPhone7.png

DeviceiPhone
Model55c5s66 Plus6s6s PlusSE77 Plus
Height [mm]123.8124.4123.8138.1158.1138.3158.2123.8138.3158.2
Width [mm]58.659.258.667.077.867.177.958.667.177.9
Depth [mm]7.68.977.66.97.17.17.37.67.17.3
Weight112g132g112g129g172g143g192g113g138g188g
Capacity16GB
32GB
64GB
16GB
32GB
16GB
32GB
64GB
16GB
64GB
128GB
16GB
64GB

32GB
128GB
32GB
128GB
256GB
Display4"
1136 x 640px
326ppi
4.7"
1334 x
750px
326ppi
5.5"
1920 x
1080px
401ppi
4.7"
1334 x
750px
326ppi
5.5"
1920 x
1080px
401ppi
4"
1136 x
640px
326ppi
4.7"
1334 x
750px
326ppi
5.5"
1920 x
1080px
401ppi
Wi-FiIEEE802.11a/b/g/nIEEE802.11a/b/g/n/ac
Bluetooth4.04.2
iSight
Camera
8Mpx12Mpx
FaceTime
Camera
Video
Recording
1,080p HD
30fps
1,080p HD
30 or 60fps
3,840x2,160
30fps
GPS
Digital
compas
Three-axis
gyro
Touch ID-
3D Touch--
NFC-NFCNFC
FeliCa
Release2012
.9.21
2013.9.202014.9.192015.9.252016
.3.31
2016.9.16
Launch OS6.07.08.09.09.310.0
Supported OS10.3.1
CPUApple A6
1.3GHz 
Apple A7
1.3GHz
Apple A8
1.4GHz
Apple A9
1.8GHz
Apple A9
1.85GHz
Apple A10 Fusion
2.34GHz
CPU
Architecture
ARMv7sARMv8ARMv8-A
GPUPowerVR
SGX543MP3
PowerVR
G6430
PowerVR
GX6450
PowerVR
GT7600
PowerVR
GT7600 Plus
Motion
Co-processor
-M7M8M9M10
Memory1GB2GB3GB


DeviceiPhone
Model 3G3GS44S
Height [mm]115115.5115.2
Width [mm]6162.158.6
Depth [mm]11.612.39.3
Weight135g133g135g137g140g
Capacity4GB
8GB
16GB
8GB
16GB
8GB
16GB
32GB
16GB
32GB
64GB
Display3.5" 480 x 320px
163ppi
3.5" 960 x 640px
326ppi
Wi-FiIEEE802.11b/gIEEE802.11b/g/n
Bluetooth2.0 + EDR2.1 + EDR4.0
iSight Camera2.0Mpx3.0Mpx5Mpx8Mpx
FaceTime Camera-
Video Recording-VGA 30fps720p HD 30fps1,080p HD
30fps
GPS-
Digital compas-
Three-axis gyro-
Touch ID-
Release2007.6.292008.7.112009.6.192010.6.242011.10.14
Launch OS1.02.03.04.05.0
Supported OS3.1.34.2.16.1.67.1.29.3.5
CPU
(underclocked) 
ARM 1176JZ(F)-S
620MHz (412MHz)
ARM Cortex-A8
833MHz (600MHz)
Apple A4
1GHz (800MHz)
Apple A5
1GHz
(800MHz)
CPU ArchitectureARMv6ARMv7
GPUPowerVR MBX LitePowerVR SGX 535PowerVR
SGX543MP2
Motion Co-processor-
Memory128MB256MB512MB

CPUの動作クロックにおいて、()内は実動クロック数です。



iPod touchのハード仕様

iPod_touch.jpg

DeviceiPod touch
Generation1st Gen2nd Gen3rd Gen4th Gen5th Gen6th Gen
Height110mm111.0mm123.4mm
Width61.8mm58.9mm58.6mm
Depth8mm8.5mm7.2mm6.1mm
Weight120g115g101g88g
Capacity8GB
16GB
32GB
8GB32GB
64GB
8GB
32GB
64GB
16GB
32GB
64GB
16GB
32GB
64GB
128GB
Display3.5" 480 x 320px 163ppi3.5" 960 x 640px
326ppi
4" 1136 x 640px
326ppi
Wi-FiIEEE802.11b/gIEEE802.11
b/g/n
IEEE802.11
a/b/g/n
IEEE802.11
a/b/g/n/ac
Bluetooth-2.1 + EDR4.04.1
Back Camera-960 x 720px5Mpx8Mpx
Front Camera-640 x 480px0.7Mpx1.2Mpx
Video Recording-720p HD 30fps1080p HD 30fps
Three-axis gyro-
Release2007.9.132007.9.132009.9.92010.9.92012.10.92015.7.15
Launch OS1.12.1.13.1.14.16.08.4
Supported OS3.1.34.2.1
Limited
5.16.1.69.3.510.3.1
CPUARM11
412MHz
ARM11
533MHz
ARM
Cortex-A8
600MHz
Apple A4
1GHz
Apple A5
800MHz
Apple A8
1.1GHz
CPU
Architecture
ARMv6ARMv7ARMv8-A
GPUPowerVR MBX LitePowerVR
SGX 535
PowerVR
SGX543MP2
PowerVR
GX6450
Memory128MB256MB512MB1GB



iPadのハード仕様

8046.png

DeviceiPadiPad 2iPadiPad with
Retina 
display 
iPad
Generation 1st Gen2nd Gen3rd Gen4th Gen5th Gen
ModelsWi-FiWi-Fi
+ 3G 
Wi-FiWi-Fi
+ 3G
Wi-Fi
+ 3G
CDMA
Wi-FiWi-Fi
+ Cell
Wi-FiWi-Fi
+ Cell
Wi-FiWi-Fi
+ Cell
Height242.8mm241.2mm240mm
Width189.7mm185.7mm169.5mm
Depth13.4mm8.8mm9.4mm7.5mm
Weight680g730g601g613g607g652g662g652g662g469g478g
Capacity
16GB
32GB
64GB
16GB
32GB
64GB
128GB
32GB
128GB
Display
9.7" 1024 x 768px 132ppi
9.7" 2048 x 1536px 264ppi
Wi-Fi
IEEE802.11a/b/g/nIEEE802.11
a/b/g/n/ac
Bluetooth2.1+EDR4.04.2
Camera-
Video 
Recording
-
720p HD
30fps
1080p HD
30fps
GPS-----
Digital 
compass
-
Three
-axis
 gyro
-
Touch ID-
Release
2010
.4.3
2010
.4.30
2011.3.112012.3.162012
.11.2
2012
.11.16
2017.3.24
Launch OS3.24.35.16.010.3
Supported
 OS
5.1.19.3.510.3.1
CPUApple A4
1GHz
Apple A5
Dual Core 1GHz
Apple A5X
Dual Core
1GHz
Apple A6X
Dual Core
1.4GHz
Apple A9
Dual Core
1.85GHz
CPU
Archite
-cture
ARMv7ARMv7sARMv8-A
GPU
PowerVR
SGX 535
PowerVR
SGX 543MP2
PowerVR
SGX 543MP4
PowerVR
SGX 554MP4
PowerVR
GT7600
Motion
Co-
processor
-M9
Memory256MB512MB1GB2GB


iPad_Air_2.jpg

DeviceiPad AiriPad Air 2
Generation 1st Gen2nd Gen
ModelsWi-FiWi-Fi + CellWi-FiWi-Fi + Cell
Height240mm
Width169.5mm
Depth7.5mm6.1mm
Weight469g478g437g444g
Capacity
16GB
32GB
64GB
128GB
16GB
64GB
128GB
Display
9.7" 2048 x 1536px 264ppi
Wi-Fi
IEEE802.11a/b/g/nIEEE802.11a/b/g/n/ac
Bluetooth4.0
Camera
Video Recording
1080p HD 30fps
GPS--
Digital compass
Three-axis gyro
Touch ID-
Release2013.11.12014.10.23
Launch OS7.0.38.1
Supported OS10.3.1
CPUApple A7 Dual Core 1.4GHzApple A8X Triple Core 1.5GHz
CPU ArchitectureARMv8ARMv8-A
GPUPowerVR G6430PowerVR GX6850
Motion CoprocessorM7M8
Memory1GB2GB



iPad miniのハード仕様

iPadmini4_.jpg   

DeviceiPad miniiPad mini 2iPad mini 3iPad mini 4
Generation1st Gen2nd Gen3rd Gen4th Gen
ModelsWi-FiWi-Fi +
Cellular
Wi-FiWi-Fi +
Cellular
Wi-FiWi-Fi +
Cellular
Wi-FiWi-Fi +
Cellular
Height200mm203.2mm
Width134.7mm134.8mm
Depth7.2mm7.5mm6.1mm
Weight308g312g331g341g331g341g298.8g304g
Capacity
16GB
32GB
64GB
16GB
32GB
64GB
128GB
16GB
64GB
128GB
Display
7.9" 1024 x 768px 163ppi
7.9" 2048 x 1536px 326ppi
Wi-Fi
IEEE802.11a/b/g/nIEEE802.11
a/b/g/n/ac
Bluetooth4.04.2
Camera
Video
 Recording
1080p HD 30fps
GPS----
Digital
 compass
Three-axis
 gyro
Touch ID
-
Release
2012.11.2
2012.11.16
2013.11.13
2013.11.14
2014.10.23
2015.9.9
Launch OS6.07.0.38.18.4.1
Supported OS9.3.510.3.1
CPUApple A5 Dual Core 1GHzApple A7 Dual Core 1.3GHzApple A8
Dual Core 1.5GHz
CPU
Architecture
ARMv7ARMv8ARMv8-A
GPU
PowerVR SGX 543MP2
PowerVR G6430
PowerVR GX6450
Motion
Coprocessor
-M7M8
Memory512MB1GB2GB



iPad Proのハード仕様

iPadPro9_7.png  

DeviceiPad Pro
Generation1st Gen
ModelsWi-FiWi-Fi +
Cellular
Wi-FiWi-Fi +
Cellular
Height305.7mm240mm
Width220.6mm169.5mm
Depth6.9mm6.1mm
Weight713g723g437g444g
Capacity
32GB
128GB
256GB

128GB
256GB
32GB
128GB
256GB
Display
12.9" 2732 x 2048px 264ppi
9.7" 2048 x 1536px 264ppi
Wi-Fi
IEEE 802.11a/b/g/n/ac
Bluetooth4.2
Camera8Mpx12Mpx
Video Recording
1080p HD 30fps 3840 x 2160px  30fps 
GPS--
Digital compass
Three-axis gyro
Touch ID
Release
2015.11.11
2016.3.31
Launch OS9.19.3
Supported OS10.3.1
CPUApple A9X 2.25GHz
CPU
Architecture
ARMv8-A
GPU
PowerVR 7XT Custom
(12cores)
Motion
Coprocessor
M9
Memory4GB2GB


※『Release』は米国での発売日です。



参考文献

Wikipedia/iOS(アップル)

Wikipedia/iOS(Apple)

Wikipedia/IOS version history

Wikipedia/List of iOS devices

Wikipedia/iPhone

Wikipedia/iPod Touch

Wikipedia/iPad

iFixit/iPad 3 4G Teardown

EE Times Japan/製品解剖 タブレット:第3世代iPadを分解、新型プロセッサ「A5X」と従来品の差異が明らかに (1/2)

Mac Rumors/Apple's A6 Chip Confirmed to Carry Triple-Core Graphics

0 CommentsPosted in 資料

iOSデバイスとiOSの対応表

2016. 12. 13
●iPhone

DeviceiPhone
Model55s5c66 Plus6s6s PlusSE77 Plus
Release date2012.9.212013.9.202014.9.192015.9.252016.3.312016.9.16
iOS Ver.Release
6.02012.10.12
6.0.12012.11.10
6.0.22012.12.18
6.12013. 1.28
6.1.12013. 2.11
6.1.22013. 2.19
6.1.32013. 3.19
6.1.42013. 5. 2
6.1.62014. 2.21
7.02013. 9.18
7.0.12013. 9.19
7.0.22013. 9.26
7.0.32013.10.22
7.0.42013.11.14
7.0.52014. 1.29
7.0.62014. 2.21
7.12014. 3.10
7.1.12014. 4.22
7.1.22014. 6.30
8.02014. 9.17
8.0.12014. 9.24
8.0.22014. 9.25
8.12014.10.20
8.1.12014.11.17
8.1.22014.12. 9
8.1.32015. 1.27
8.22015. 3. 9
8.32015. 4. 8
8.42015. 7. 1
8.4.12015. 8.13
9.02015. 9.16
9.0.12015. 9.23
9.0.22015. 9.30
9.12015.10.21
9.22015.12. 8
9.2.12016. 1.19
9.32016. 3.21
9.3.12016. 3.31
9.3.22016. 5.16
9.3.32016. 7.18
9.3.42016. 8. 4
9.3.52016. 8.25
10.02016. 9.13
10.0.12016. 9.13
10.0.22016. 9.23
10.0.32016.10.17
10.12016.10.24
10.1.12016.10.31
10.22016.12.12
10.2.12017. 1.23
10.32017. 3.27
10.3.12017. 4. 3


DeviceiPhone
Model3G3GS4 GSM4 CDMA4S
Release date2007.6.292008.7.112009.6.192010.6.242011.2.102011.10.14
iOS Ver.Release
1.02007. 6.29
1.0.12007. 7.31
1.0.22007. 8.21
1.12007. 9.14
1.1.12007. 9.27
1.1.22007.11.12
1.1.32008. 1.15
1.1.42008. 2.26
1.1.52008. 7.15
2.02008. 7.11
2.0.12008. 8. 4
2.0.22008. 8.18
2.12008. 9.12
2.1.12008. 9. 9
2.22008.11.21
2.2.12009. 1.27
3.02009. 6.17
3.0.12009. 7.31
3.12009. 9. 9
3.1.12009. 9. 9
3.1.22009.10. 8
3.1.32010. 2. 2
3.22010. 4. 3
3.2.12010. 7.15
3.2.22010. 8.11
4.02010. 6.21
4.0.12010. 7.15
4.0.22010. 8.11
4.12010. 9. 8
4.2-
4.2.12010.11.22
4.2.52011. 2. 7
4.2.62011. 2.10
4.2.72011. 4.14
4.2.82011. 5.4
4.2.92011. 7.15
4.2.102011. 7.25
4.32011. 3. 9
4.3.12011. 3.25
4.3.22011. 4.14
4.3.32011. 5. 4
4.3.42011. 7.15
4.3.52011. 7.25
5.02011.10.12
5.0.12011.11.10
5.12012. 3.11
6.02012.10.12
6.0.12012.11.10
6.0.22012.12.18
6.12013. 1.28
6.1.12013. 2.11
6.1.22013. 2.19
6.1.32013. 3.19
6.1.42013. 5. 2
6.1.62014. 2.21
7.02013. 9.18
7.0.12013. 9.19
7.0.22013. 9.26
7.0.32013.10.22
7.0.42013.11.14
7.0.52014. 1.29
7.0.62014. 2.21
7.12014. 3.10
7.1.12014. 4.22
7.1.22014. 6.30
8.02014. 9.17
8.0.12014. 9.24
8.0.22014. 9.25
8.12014.10.20
8.1.12014.11.17
8.1.22014.12. 9
8.1.32015. 1.27
8.22015. 3. 9
8.32015. 4. 8
8.42015. 7. 1
8.4.12015. 8.13
9.02015. 9.16
9.0.12015. 9.23
9.0.22015. 9.30
9.12015.10.21
9.22015.12. 8
9.2.12016. 1.19
9.32016. 3.21
9.3.12016. 3.31
9.3.22016. 5.16
9.3.32016. 7.18
9.3.42016. 8. 4
9.3.52016. 8.25



●iPod touch

DeviceiPod touch
Model1st gen2nd gen3rd gen4th gen5th gen6th gen
Release date2007.9.142008.9.92009.9.92010.9.82012.10.92015.7.15
iOS Ver.Release
1.12007. 9.14
1.1.12007. 9.27
1.1.22007.11.12
1.1.32008. 1.15
1.1.42008. 2.26
1.1.52008. 7.15
2.02008. 7.11
2.0.12008. 8. 4
2.0.22008. 8.18
2.12008. 9.12
2.1.12008. 9. 9
2.22008.11.21
2.2.12009. 1.27
3.02009. 6.17
3.0.12009. 7.31
3.12009. 9. 9
3.1.12009. 9. 9
3.1.22009.10. 8
3.1.32010. 2. 2
3.22010. 4. 3
3.2.12010. 7.15
3.2.22010. 8.11
4.02010. 6.21
4.0.12010. 7.15
4.0.22010. 8.11
4.12010. 9. 8
4.2-
4.2.12010.11.22
4.2.52011. 2. 7
4.2.62011. 2.10
4.2.72011. 4.14
4.2.82011. 5. 4
4.2.92011. 7.15
4.2.102011. 7.25
4.32011. 3. 9
4.3.12011. 3.25
4.3.22011. 4.14
4.3.32011. 5. 4
4.3.42011. 7.15
4.3.52011. 7.25
5.02011.10.12
5.0.12011.11.10
5.12012. 3.11
6.02012.10.12
6.0.12012.11.10
6.12013. 1.28
6.1.22013. 2.19
6.1.32013. 3.19
6.1.52013.11.14
6.1.62014. 2.21
7.02013. 9.18
7.0.12013. 9.19
7.0.22013. 9.26
7.0.32013.10.22
7.0.42013.11.14
7.0.62014. 2.21
7.12014. 3.10
7.1.12014. 4.22
7.1.22014. 6.30
8.02014. 9.17
8.0.12014. 9.24
8.0.22014. 9.25
8.12014.10.20
8.1.12014.11.17
8.1.22014.12. 9
8.1.32015. 1.27
8.22015. 3. 9
8.32015. 4. 8
8.42015. 7. 1
8.4.12015. 8.13
9.02015. 9.16
9.0.12015. 9.23
9.0.22015. 9.30
9.12015.10.21
9.22015.12. 8
9.2.12016. 1.19
9.32016. 3.21
9.3.12016. 3.31
9.3.22016. 5.16
9.3.32016. 7.18
9.3.42016. 8. 4
9.3.52016. 8.15
10.02016. 9.13
10.0.12016. 9.13
10.0.22016. 9.23
10.12016.10.24
10.1.12016.10.31
10.22016.12.12
10.2.12017. 1.23
10.32017. 3.27
10.3.12017. 4. 3



●iPad

DeviceiPad
ModeliPadiPad 2iPad
(3rd)
iPad
Retina
(4th)
iPad
(5th)
Release date2010.4.32011.3.112012.3.162012.11.22017.3.24
iOS Ver.Release
3.22010. 4. 3
3.2.12010. 7.15
3.2.22010. 8.11
4.02010. 6.21
4.0.12010. 7.15
4.0.22010. 8.11
4.12010. 9. 8
4.2-
4.2.12010.11.22
4.2.52011. 2. 7
4.2.62011. 2.10
4.2.72011. 4.14
4.2.82011. 5. 4
4.2.92011. 7.15
4.2.102011. 7.25
4.32011. 3. 9
4.3.12011. 3.25
4.3.22011. 4.14
4.3.32011. 5. 4
4.3.42011. 7.15
4.3.52011. 7.25
5.02011.10.12
5.0.12011.11.10
5.12012. 3.11
6.02012.10.12
6.0.12012.11.10
6.0.22012.12.18
6.12013. 1.28
6.1.22013. 2.19
6.1.32013. 3.19
7.02013. 9.18
7.0.12013. 9.19
7.0.22013. 9.26
7.0.32013.10.22
7.0.42013.11.14
7.0.62014. 2.21
7.12014. 3.10
7.1.12014. 4.22
7.1.22014. 6.30
8.02014. 9.17
8.0.12014. 9.24
8.0.22014. 9.25
8.12014.10.20
8.1.12014.11.17
8.1.22014.12. 9
8.1.32015. 1.27
8.22015. 3. 9
8.32015. 4. 8
8.42015. 7. 1
8.4.12015. 8.13
9.02015. 9.16
9.0.12015. 9.23
9.0.22015. 9.30
9.12015.10.21
9.22015.12. 8
9.2.12016. 1.19
9.32016. 3.21
9.3.12016. 3.31
9.3.22016. 5.16
9.3.32016. 7.18
9.3.42016. 8. 4
9.3.52016. 8.25
10.02016. 9.13
10.0.12016. 9.13
10.0.22016. 9.23
10.12016.10.24
10.1.12016.10.31
10.22016.12.12
10.2.12017. 1.23
10.32017. 3.27
10.3.12017. 4. 3


DeviceiPad Air
ModeliPad Air
(1st)
iPad Air 2
(2nd)
Release date2013.11.12014.10.23
iOS Ver.Release
7.0.32013.10.22
7.0.42013.11.14
7.0.62014. 2.21
7.12014. 3.10
7.1.12014. 4.22
7.1.22014. 6.30
8.02014. 9.17
8.0.12014. 9.24
8.0.22014. 9.25
8.12014.10.20
8.1.12014.11.17
8.1.22014.12. 9
8.1.32015. 1.27
8.22015. 3. 9
8.32015. 4. 8
8.42015. 7. 1
8.4.12015. 8.13
9.02015. 9.16
9.0.12015. 9.23
9.0.22015. 9.30
9.12015.10.21
9.22015.12. 8
9.2.12016. 1.19
9.32016. 3.21
9.3.12016. 3.31
9.3.22016. 5.16
9.3.32016. 7.18
9.3.42016. 8. 4
9.3.52016. 8.25
10.02016. 9.13
10.0.12016. 9.13
10.0.22016. 9.23
10.12016.10.24
10.1.12016.10.31
10.22016.12.12
10.2.12017. 1.23
10.32017. 3.27
10.3.12017. 4. 3



●iPad mini

DeviceiPad mini
ModeliPad miniiPad mini 2iPad mini 3iPad mini 4
Release date2012.11.22013.11.132014.10.232015. 9. 9
iOS Ver.Release
6.02012.10.12
6.0.12012.11.10
6.0.22012.12.18
6.12013. 1.28
6.1.22013. 2.19
6.1.32013. 3.19
7.02013. 9.18
7.0.12013. 9.19
7.0.22013. 9.26
7.0.32013.10.22
7.0.42013.11.14
7.0.62014. 2.21
7.12014. 3.10
7.1.12014. 4.22
7.1.22014. 6.30
8.02014. 9.17
8.0.12014. 9.24
8.0.22014. 9.25
8.12014.10.20
8.1.12014.11.17
8.1.22014.12. 9
8.1.32015. 1.27
8.22015. 3. 9
8.32015. 4. 8
8.42015. 7. 1
8.4.12015. 8.13
9.02015. 9.16
9.0.12015. 9.23
9.0.22015. 9.30
9.12015.10.21
9.22015.12. 8
9.2.12016. 1.19
9.32016. 3.21
9.3.12016. 3.31
9.3.22016. 5.16
9.3.32016. 7.18
9.3.42016. 8. 4
9.3.52016. 8.25
10.02016. 9.13
10.0.12016. 9.13
10.0.22016. 9.23
10.12016.10.24
10.1.12016.10.31
10.22016.12.12
10.2.12017. 1.23
10.32017. 3.27
10.3.12017. 4. 3


●iPad Pro

DeviceiPad Pro
ModeliPad Pro
12.9"
iPad Pro
9.7"
Release date2015.11.112016. 3.31
iOS Ver.Release
9.12015.10.21
9.22015.12. 8
9.2.12016. 1.19
9.32016. 3.21
9.3.12016. 3.31
9.3.22016. 5.16
9.3.32016. 7.18
9.3.42016. 8. 4
9.3.52016. 8.25
10.02016. 9.13
10.0.12016. 9.13
10.0.22016. 9.23
10.12016.10.24
10.1.12016.10.31
10.22016.12.12
10.2.12017. 1.23
10.32017. 3.27
10.3.12017. 4. 3


※ ●は対応、▲はマルチタスクなどの一部機能が制限されていることを示します。
※ iOS 4.2は正式リリースされず、4.2.1に置き換えられています。
※ iOS 7.0.5は中国で販売されているiPhone 5s / 5cのみ対象です。



参考文献

Wikipedia/iOS(アップル)

Wikipedia/iOS(Apple)

Wikipedia/IOS version history

Wikipedia/List of iOS devices

Wikipedia/iPhone

Wikipedia/iPod Touch

Wikipedia/iPad

0 CommentsPosted in 資料






bose_soundlink_revolve
Calendar
11 | 2016/12 | 01
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 31
Recent Articles
iTunes


Swift
Categories
Tips
Profile

水月杏香

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

Wish List
WACOM


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

bose_soundlink_revolve
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