HOME > Array
Array:NSArray
Swiftの配列の説明です。 Objective-CではNSArrayやNSMutableArrayはAnyObject型の配列でしたが、SwiftのArrayはInt型, String型、Float型、等明記的に宣言することで整理しやすくなっています(AnyObject型も可能)。 (NSArray、NSMutableArrayも継続して利用可能です。)
参考:SwiftのArrayとDictionaryの使い方
参考:
Collection Typese
参考:
Foundation Framework Reference NSArray Class Reference
参考:
SWIFT TUTORIAL: HOW TO USE AN ARRAY IN SWIFT
Array宣言方法
//宣言方法(静的にも、動的にも作成可能)
let staticArr = ["hop","step","jump"]
var dynamicArr = [1,2,3,5,7,13,17,23]
//型明記(以下、INT型で宣言)
var dynamicArr:[Int] = [1,2,3,5,7,13,17,23]
var dynamicArr:[Int] = []
//特殊な方法
var hogehogeArr = Array(count: 3, repeatedValue: "Hoge")
--> 初期値がHogeの配列を作成した事と同等になります ["Hoge","Hoge","Hoge"]
//アクセス方法
print(staticArr[0]) //最初の要素にアクセス
print(\(dynamicArr[2] + dynamicArr[1])) //配列の要素を足し算
//for in
var arr=[1,2,3,5,7,11,13,17]
for element in arr {
print("\(element) ")
}
//for
var arr=[1,2,3,5,7,11,13,17]
var total = 0
for var index:Int = 1 ; index < arr.count ;index += 1{
print("\(arr[index]) ")
}
//要素数、Length
var arr=[1,2,3]
print(arr.count) // 3
配列の追加、挿入、削除
以下コードをPlaygroundに貼り付けて実行するとわかりやすいかもしれません。
//配列宣言
var salarymanArr:Array = []
salarymanArr = ["hira", "kachou"]
println(salarymanArr);//[hira, kachou]
//要素を追加
salarymanArr.append("buchou")
println(salarymanArr);//[hira, kachou, buchou]
//配列に配列を追加
let yakuinArr = ["owner", "ceo"]
salarymanArr.extend(yakuinArr)
println(salarymanArr);//[hira, kachou, buchou, owner, ceo]
//+で追加
salarymanArr += ["cleanlady", "securityman"]
println(salarymanArr);//[hira, kachou, buchou, owner, ceo, cleanlady, securityman]
//差し込み
salarymanArr.insert("part time", atIndex: 0)
println(salarymanArr);//[part time, hira, kachou, buchou, owner, ceo, cleanlady, securityman]
//リバース
salarymanArr.reverse()
println(salarymanArr);//[part time, hira, kachou, buchou, owner, ceo, cleanlady, securityman]
//ソート処理:降順
salarymanArr.sort{ $0 < $1 };
println(salarymanArr);//[buchou, ceo, cleanlady, hira, kachou, owner, part time, securityman]
//ソート処理:昇順
salarymanArr.sort{ $1 < $0 }
println(salarymanArr);//[securityman, part time, owner, kachou, hira, cleanlady, ceo, buchou]
//フィルタ(最初の文字が*の場合。以下はcの場合)
let filtered = salarymanArr.filter {¥$0.hasPrefix("c")}
println(salarymanArr);//[securityman, part time, owner, kachou, hira, cleanlady, ceo, buchou]
println(filtered);//[cleanlady, ceo]
//フィルタ(配列の各要素を変更。以下は身分をそれぞれ追加)
let mapped = salarymanArr.map { "身分: \($0)" }
println(salarymanArr);//[securityman, part time, owner, kachou, hira, cleanlady, ceo, buchou]
println(mapped);//[身分: securityman, 身分: part time, 身分: owner, 身分: kachou, 身分: hira, 身分: cleanlady, 身分: ceo, 身分: buchou]
//一番目の要素を削除
salarymanArr.removeAtIndex(0)
println(salarymanArr);//[part time, owner, kachou, hira, cleanlady, ceo, buchou]
//最後の要素を削除
salarymanArr.removeLast()
println(salarymanArr);//[part time, owner, kachou, hira, cleanlady, ceo]
//全部削除
salarymanArr.removeAll()
println(salarymanArr);//[]
おまけ
NS系のArrayとSwiftのArrayは参照型かそうでないかで差があります。詳しくは過去記事:NSMutableArrayに記載していますのでよかったら一読くださいませ!
追記 (2015/6/26)
Arrayの型宣言なしで作成した場合、NSArrayになる場合とArrayになる場合があって混乱したのでメモ
var salarymanArr = []
salarymanArr = ["hira", "kachou"]
↑これだと型がNSArray
var salarymanArr = ["hira", "kachou"]
↑これだと型がArray
↓こんな記事もありますよ!
![]() | UIPageControlでペラペラめくるチュートリアル画面を作成するUIPageControllでiOSアプリ初回起動時にのみ表示される, ペラペラめくるチュートリアル機能の説明です。プロジェクト作成時にPage-Basedを選ぶと作成することはできるのですが、既存のアプリに追加するには気がので、 既に作成したアプリに初回一回だけ表示するチュートリアルを解説します |
![]() | UIStepperさて今回は基本のコンポーネントの一つStepper(メモリを少しずつ+とーで上下させるコントロール)を説明します。 単純なコントロールですのが、初期設定で、+と-が表示される優れものです。ただ、単調な為に記事にするのが面白くないので、 何度も申し訳ありませんが「ヒゲ」にフォーカスして、ヒゲを剃るStepper(ヒゲの量を調整する)を作成して説明してみます。 |
![]() | AppleWatchのアプリ登録が開始されました、開発部分を少し翻訳ItunesconnectにもAppleWatchのアイコン やスクリーンショットが登録できる画面が追加されています。あと24日、登録予定している人は審査を考えても後10日程度ではないでしょうか。 スタートダッシュに追いつくには今が頑張りどころなのかもしれません! |
Tweet
![]() |
|||
|