swiftを使ってみた(2)
はじめに
比較学習のためにこういうアプリを作ってみます。
プロパティとアクションが含まれた基本機能を確認出来る最小限のアプリのつもりです。
画面のデザイン
基本的に今までのデザイナと変わりませんが、デザイナの表示サイズがデバイス依存ではなくなっています。
デバイス依存等は、レイアウト設定で対応してください、ということでしょう。
深くは追求せず、今まで通りラベルとボタンを設定します。
画面のデザインとソースとの関連づけ
ここも今までと全く同じでした。
各コントローラーをクリックしてからCtrl+ドラッグで、ソースにドロップすることでプロパティとアクションが設定できます。
swiftでの実装
すべて実装したコードはこちら(swiftファイル)。
javaのように1つのファイルですべて表現されています。
import UIKit
class ViewController: UIViewController {
@IBOutlet var label_Hello : UILabel
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWaring() {
super.func didReceiveMemoryWaring()
// Dispose of any resources that can be recreated.
}
@IBAction func pushButton(sender : AnyObject) {
label_Hello.text = "Hello"
}
}
Objective-Cでの実装
すべて実装したコードはこちら(h&mファイル)
全く同じ内容です。
#import <UIKit/UIKit.h>
@interface ViewController ()
@property (weak, nonatomic) IBOutlet UILabel *label_Hello;
@end
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWaring {
[super didReceiveMemoryWaring];
// Dispose of any resources that can be recreated.
}
- (IBAction)pushButton:(id)sender {
self.label_Hello.text = "Hello";
}
@end
swift と Objective-Cでの相違点
どちらも実装しての相違点を挙げてみると、、、
- メソッドの処理が「[インスタンス メソッド] 」ではなくなった
- これの意味が全く分からなくなってやめた人も多いと思います。。。
- クラスの宣言、範囲指定が「{ }」になった
- 「@interface ~ @end」ではなくなった
- 実際、「@interface ~ @end」がhファイルやmファイルに何か所もあって戸惑ってた人も居たと思います。。。
- hファイルが不要(swiftファイルのみで表現)
- 行の区切りに「;」 が不要
かなりjavascript風にわかりやすい表現になったので使いやすくなったと思います。
Author And Source
この問題について(swiftを使ってみた(2)), 我々は、より多くの情報をここで見つけました https://qiita.com/maruo2/items/ce81cc64d3d3fe87fb3b著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .