【新サービス告知】いつでもどこでもイベントを開催できる。スマホのWebカメラを利用したVRイベントスペースサービス(Meetatcube.com)
Swift転職なら=>【LevTech】
↑クリックして拡大
↑クリックして拡大
↑クリックして拡大
↑クリックして拡大

頭痛が減ったので共有です!

rebuild.fmを応援しています!

HOME > Swift基本

Swift/基本

ここではSwiftの基礎的な考え方をご紹介いたします。まずAppleのObjective-Cの継続版として 開発されたのがSwiftです。Objective-Cの難解なコーディングやメモリリリース等が簡易化されていて、 phpやJavaを書くようなスキルでそのままSwiftのコーディングもできる、そんな言語なのかなと感じています。

今後はiOSアプリ以外にもAndroid等もアプリをエクスポートできるようになって欲しい、 そんな気持ちにさせてくれるサクサクコーディングさせてくれる言語だと思います。成長段階のSwiftですので、修正しつつ進めていけたらと思っております。

コメントについて

Swiftのコメントは、Objective-Cと同様に行単位のコメントとブロック単位のコメントの2種類を書く事ができます

コメント記号 説明
// 行単位のコメント。「//」の後ろから行末までの文字はコメントとして認識され実行されません
/* ◎◎◎ */ ブロック単位のコメント。「/*」と「*/」で囲まれた部分をコメントとして認識され実行されません

ヘッダファイルとメインファイル

Objective-Cではメインファイルとヘッダファイルと分離されていましたが、Swiftでは一つのファイルだけ完結します。 DelegateなどObjective-Cではヘッダファイルに記載してメインに処理をと分かれていましたが、同じファイル内での作業になります。

以下、Swiftのメインファイルです。Delegateがカンマでクラス名の後に追加されています。

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

       class ViewController: UIViewController,GKGameCenterControllerDelegate {
           ...
       }
       
参考サイト:【Objective-CとSwift比較】 http://qiita.com/skatata/items/a0b908c899748c843db3

メモリ解放について

 

Objective-Cで惑わされた多くのretain, release, autoreleaseが無くなり、メモリをほとんど気にする事なくコーディングできます。

メソッドの書き方

SwiftはObjective-Cの特殊な構文とは違いPHPやJavaに似ているかと思います。
 例えば、文字列を連結する処理の関数を以下記載します。


// Objective-C
-(NSString*) addString:(NSString*)str1 param2:(NSString*)str2{
 return [str1 stringByAppendingString:str2];
}


// Swift
func addString(param1:String, param2:String){
 return param1 + param2;
}

上記のように、かなり短縮化されました。functionもfuncに、文字列連結も簡単に+で実施できるようになりコード量が大幅に少なくなりました。

メソッドの呼び出し方

メソッドの呼び出し方も同様に変わってきています
Objective-CとSwiftのメソッドの読み込み方法を比べてみましょう。


// Objective-C
NSString *str = [hoge getValue];


// Swift
let str:String = hoge.getValue();

いままでのObjetive-CからJavaやPhpの様な簡単なメソッド実行が可能になりました。
これで[]の括弧地獄から解放されます!

↓こんな記事もありますよ!

デバッグ時とリリース時に処理を変更する#ifdef DEBUG のやり方

DEBUG時だけ特定の動作をさせて、リリース時に排除したい、そんな時に利用する方法です。Swiftでは標準ではDEBUGとリリースの判断がつかないので、 コンパイル時に設定する必要があります

Typealiasをどうやって活用するのか

Typealiasって言葉、なんだややこしく見て見ないふりをしていましたが、 先日別の記事を書いた際にTypealiasの記述がありましたので、あらためて確認してみようと思います。まずaliasですが、 Macでショートカットを作成した時に記載される「エイリアス」です。ショートカットのようなものですので、 Typeのショートカット的な感覚で調査進めてまいります。

willsetとdidsetでプロパティを監視。意味あるのか???

クラスのプロパティにはWillsetとdidsetという監視用の関数があると聞いたのですが、用途は分かるにしても メリットとしてはどういうものなのかなと、うーん、と考えていました。調べていると海外のサイトでは同じように疑問にもつ質問があがっていました。 getとsetで同じことができるのでは?との私と同じスタンスです。解決されていましたので、順に説明していきます。
このエントリーをはてなブックマークに追加
右側のFacebookのLikeをクリック頂けると記事更新の際に通知されますので宜しければご利用下さい!