LoginSignup
29
28

More than 5 years have passed since last update.

ざっくりSwiftの使い方

Last updated at Posted at 2015-05-17

書いてる人

プログラミング学習サービスやら、ペットサロン予約サービス、風俗検索サービスなど色々とやっている「かずきち」です。
■運営サービス一部
http://crazy-wp.com/
http://webukatu.com/
新宿のホストから不動産・保険の営業を経て、HTMLって何?という状態から3ヶ月独学でプログラミングやデザインを学び、IT業界で1年間実務経験を積んで年収は1本超え。現在は起業家としてサービス運営やら不動産運営をしています。
Qiita内にそれ系の記事も書いてます。
エンジニアで稼ぐために大切な13のコト
WEBサービスで起業したい人に読んで欲しい18のコト

Swiftとは?

Appleが開発した新しい言語。
今までiPhoneアプリを開発するにはObjective-C言語というやや癖のある言語を使わないと開発できなかったが、Swift言語が誕生したことで、かなり楽に作れるようになった。
Objecive-Cで開発するよりも高速に動くものが作れる。
Swiftは命令文の最後に「;(セミコロン)」をつけなくてよかったりと「Ruby」っぽい感じ。PHPやRuby言語しか知らない人にもとてもわかり易い。

コメントアウト

■1行コメントの場合
//コメント内容
複数行コメントの場合
/*コメント内容*/

定数と変数

Swiftでは、「型推論」といって宣言時に設定された値を元に自動で型を推測して設定される。
PHPなどと違い型が動的に変わる「動的型付け」ではなく、あくまで「静的片付け」なので、宣言時に設定された型以外の値を入れようとするとエラーになる。

定数の宣言

letを使う

let 定数名 =  //型を指定しない場合
//例
let num = 30
let str = "あいうえお"

let 定数名: =  //型を指定する場合
//例
let num:Int = 30
let str:String = "あいうえお"

let 定数名 = , 定数名 = , 定数名 =  //連続で宣言も可能


変数の宣言

varを使う

var 変数名 =  //型を指定しない場合
//例
var num = 30
var str = "あいうえお"

var 変数名: =  //型を指定する場合
//例
var num:Int = 30
var str:String = "あいうえお"
var 変数名 = , 変数名 = , 変数名 =  //連続で宣言も可能

型変換(キャスト)

宣言時に設定した型を一時的に変換する

var num:Int = 30
var str:String = "あいうえお"
str = String(num) //型(変数名or定数名) でキャストできる

数値の3桁区切り

数値を記述する場合、桁が大きくなると分かりにくいので、「_(アンダースコア)」を使って3桁ごとに区切って記述することができる。

let num = 12_350 * 2
println(num)

デバッグ

デバッグエリアに出力する関数

let msg = "あいうえお"
println(msg)
print(msg)

特殊なキーワード

下記のキーワードを記述するとそれぞれに対応した内容が吐出される

println(__FILE__) //現在のファイル名を表示
println(__LINE__) //現在の行数を表示
println(__COLUMN__) //現在のカラム数を表示
println(__FUNCTION__) //現在の関数・メソッド名を表示

タプル

複数の値を1つの値として扱える。
配列と似ているが、値を追加・削除して値の個数を変えることはできない。
(値自体の変更なら可能)

var tap = ("あいうえお",30,"かきくけこ") //型を指定しない場合
var tap:(String,Int,String) = ("あいうえお",30,"かきくけこ") //型を指定する場合

タプルの値へのアクセス

並び順のインデックス番号で値にアクセスできる

var tap = ("あいうえお",30,"かきくけこ") 
tap.0
tap.1
tap.2 = "さしすせそ" //書き換えも可能

ラベルをつけることもできる

var tap = (name:"あいうえお",num:30,addr:"かきくけこ") 
tap.name
tap.num
tap.addr = "さしすせそ"

タプルの値の取り出し

タプルに設定した値は、変数や定数を用意してあげることで取り出せる

var tap = (2800,80)
var (price,tax) = tap

var (price, _) = tap //ワイルドカードを使って必要な値だけ取り出すことも可能。この場合、priceに対応した値のみ取り出せる

ループ処理

//最終値を含む場合
for 変数名 in 開始値...最終値{
 //処理内容
}
//最終値を含まない場合
for 変数名 in 開始値..<最終値{
 //処理内容
}

//例
for num in 1...50{
 println(num)
}

※自動で変数はカウントアップされる

配列から値を取り出す

配列からひとつづつ取り出して、変数にセットする

for 変数名 in 配列名{
}

//例
for num in numList{
 println(num)
}

辞書(連想配列)のキーだけ取り出す

for 変数名 in 辞書名.keys{
}

//例
for keyName in numList.keys{
 println(keyName)
}

//ちなみに値だけ取り出す事もできる
for val in numList.values{
 println(val)
}

文字列に関して

文字列の連結

+で連結

var str1 = "あいうえお"
var str2 = "かきくけこ"
var str3 = str1 + str2

文字列の比較

if(str1 == str2){
}

文字数カウント

半角全角など問わず、1文字とカウントされる

let str = "あいうえお^^;"
let num = countElements(str)
println(num)

文字列を数値へ変換

toInt()!で数値へ変換できる。変換できるのは整数のみ。

let str = "12345"
let num = str.toInt()!

小数点のある数字を数値へ変換

NSStringにキャストしてから、floatValueプロパティにアクセスする

let str = "123.45"
let fl = (str as NSString).floatValue

数値を文字列に変換

descriptionで変換。
整数ならString()でも可能。

let num = 12345
let str = num.description

let str = String(num)

文字列を検索する

find()で検索。検索された位置のIndexが返ってくる。なければnil(null)。

let str = "あいうえお"
let findIndex = find(str, "う")

文字列の挿入

insertString()を使う

let str = "あいうえお"
str.insertString("かきく", atIndex:3) //3文字目の後ろに挿入される

文字列の削除

deleteCharactersinRange()を使う

let str = "あいうえお"
str.deleteCharactersinRange(NSMaskRange(1,4)) //2文字目から4文字分を削除

配列

型を限定せずに混在させた配列を作るとNSArrayクラスの配列になる

let 配列名 = [値1,値2,値3]
var 配列名 = [値1,値2,値3]
let 配列名[値の型] = [値1,値2,値3] //型を指定(限定)する場合

//例

let arr = [1,"あいうえ",(180,200)]
let arr[AnyObject] = [1, "あいう", 30] //複数の型を指定する場合はAnyObject型を指定する

画像の表示

let rect = CGRectMake(0,0,300,200) //縦表示位置座標、横表示位置座標、横幅、縦幅
let imageView = UIImageView(frame: rect) //表示領域を指定してImageViewを生成
imageView.contentMode = UIViewContentMode.ScaleAspectFit //ScaleAspectFitは画像の縦横サイズを保ったまま、表示領域にフィットさせる
imageView.image = UIImage(named: "logo.jpg") //画像ファイル名指定してセット



参考サイト

WEBサービスを作るまでの「全て」を一貫して学べるオンライン動画総合学習サービス『ウェブカツ!!』

様々なプログラミング学習サイトやサービスでは正直な所、自分でWEBサービスを作れるようにはならないため、「自分でWEBサービスを作れるようになる!」をゴールとしたオンライン動画総合学習サービス『ウェブカツ!!』を立ち上げました。興味ある方は登録よろしくお願いいたします。
http://webukatu.com/

・・・続く

29
28
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
29
28