技術一覧

Swift 3 基本言語仕様

今まで Objective-C で iOSアプリを開発していましたが、Apple社の方針的にも、そろそろ Swift へ移行する時期かも。
ということで、Swift 言語仕様のメモをここに綴ります。

文字列中に変数を展開する

// シンプルなパターン
let foo = "新幹線"
let bar = "東海道\(foo)"
print(bar) // 東海道新幹線

// 書式を使うパターン
let foo = 1
let bar = String(format: "番号=%03d", foo)
print(bar) // 番号=001

現在の時刻を取得する

// ローカル日時
let date = Date()
let cal = Calendar.current
let year = cal.component(.year, from: date)
let month = cal.component(.month, from: date)
let day = cal.component(.day, from: date)
let hour = cal.component(.hour, from: date)
let min = cal.component(.minute, from: date)
let sec = cal.component(.second, from: date)
let nanosec = cal.component(.nanosecond, from: date)
let wday = cal.component(.weekday, from: date) // 1=日曜日
print(String(format: "%d/%02d/%02d %02d:%02d:%02d.%d %d", year, month, day, hour, min, sec, nanosec, wday))
// 2017/01/27 21:13:48.241433024 6

// Unix epoch time (UTCでの1970年1月1日午前零時からの秒数)
let nowsec = time(nil)
print(nowsec) // 1485518007

関数コール

//
// _ を付加するとコール時の引数名を省略できる
//
func foo(_ bar: Int){
    print(bar)
}

foo(50) // bar の記述は不要

//
// 複数の戻り値(タプル)
//
func foo() -> (apple: Int, banana: Int) {
 let apple = 10
 let banana = 20
 return (apple, banana)
}

var ret = foo()
print(ret.apple, ret.banana) // 10 20

クラス

//
// イニシャライザ(コンストラクタ)
//
class Foo {
 var apple = 0
 var banana = ""
 init(apple: Int, banana: String) {
   self.apple = apple
   self.banana = banana
 }
}

let foo = Foo(apple: 10, banana: "XYZ")
print(foo.apple, foo.banana) // 10 XYZ

 


Xcode 8 / Swift 3 : SQLite.swift

Swift で SQLite を扱いたい場合、stephencelis さんの「SQLite.swift」を利用すると便利でしょう。

ダウンロード&インストール手順

https://github.com/stephencelis/SQLite.swift

上記にあるManualインストールで簡単に導入できます。但し、下記に注意する必要があります。

【注意点】
「Embedded Binaries」と「Linked Frameworks and Libraries」に SQLite.framework が追加されている必要があります。


Visual Studio for Mac

Visual Studio の Mac版が出ました。無料で使えます。マイクロソフト、Good Job!

しかも、ちゃんと日本語対応されています。

さらになんと、MacOSアプリから、iOSアプリ、Androidアプリまで作れてしまいます。

ダウンロードはこちら


Xcode 8 : コントローラと xib の連携手順

1.view のアウトレットを作成します

2.Identity Inspector (図右上矢印) で Class をコントローラのクラスに設定して紐付けます

3.Viewを表示する(Swift 3)

let view1 = SubViewController()
self.present(view1, animated: true, completion: nil)

4.Viewを閉じる(Swift 3)

self.dismiss(animated: true, completion: nil)

Xcode 8:xib ファイルの追加手順

1.マウス右クリックをして「New File」を選択します

2.「Cocoa Touch Class」を選択します

3.クラス名を入力し、「Also create XIB file」をチェックします

4.「Create」ボタンを選択します

5.swiftファイルとxibファイルが追加されました


MacBook のトラックパッドで三本指ドラッグの設定

  1. 「システム環境設定」を選択
  2. 「アクセシビリティ」を選択
  3. 左メニューから「マウスとトラックパッド」を選択
  4. 画面下部「トラックパッドオプション」を選択
  5. ドラッグを有効にする」をチェックし、ポップアップメニューから「3 本指のドラッグ」を選択


⌘英かな – Mac の英字キーボード使いに便利というか必須アプリ

日本人がUSキーボードの MacBook を使おうとすると、かな漢字変換の入力をどうするかという問題が立ち塞がります。基本は「command ⌘ + スペース」で切り換えられますが、押すキーが多いしモタモタ感があり、日々大量のコードや記事を書くプロ用途としては実用的ではありません。

そこで便利なのが、キーボードリマップ系ツール。
幾つかある中で、無料でシンプルなものと言えば「⌘英かな」が良いでしょう。

筆者はキーボードのスペースバーを挟んで左右に配置されているCommandキーで、英字/日本語入力を切り換えています。

ダウンロードサイト
https://ei-kana.appspot.com

ただし、ダウンロードしてクリックしてもセキュリティ云々で起動できないので、初回のみセキュリティ設定が必要です。


JetDrive Go を使って iPhone のストレージ容量を空ける

1.アプリを起動し「カメラロール」を選びます。

2.カメラロール画面の右上にある「選択」を選びます。

3.JetDrive Go へ移動する写真を選びます。

4.選択したら右下にある共有ボタンを選びます。

5.「移動先 JatDrive Go」を選びます。移動が完了すると削除するかの確認があるので、はいを選びます。


Windowsコマンドプロンプトで FOR コマンド

もう Windows でコマンドプロンプトなんか使わない事も多くなった今日このごろですが、ちょっと複雑なことをしたいけれど、アプリを作るまでもないという処理を実行するには、やはり便利なMS-DOSコマンド&バッチ処理。
ここでは、DOSでのループ処理を解説します。

概要

繰り返しコマンドを実行します。

基本構文

FOR 変数 IN (リスト) DO コマンド [ パラメタ ]

例文

FOR %%I IN (1 2) DO FOR %%J IN (A B) DO ECHO %%I%%J

  • 上例はFOR文を二重の入れ子にしています
  • %%I は変数なので、%%A でも何でも良いです
  • バッチファイルに記述する場合は %%I
  • コマンドライン直打ちの場合は %I

FOR /R “C:\” %A IN (*.jpg *.jpeg *.png *.gif) DO ECHO “%A”

  • 上例は指定した拡張子のファイルを検索してECHO出力しています

実行結果

c:\>FOR %I IN (1 2) DO FOR %J IN (A B) DO ECHO %I%J

c:\>FOR %J IN (A B) DO ECHO 1%J

c:\>ECHO 1A
1A

c:\>ECHO 1B
1B

c:\>FOR %J IN (A B) DO ECHO 2%J

c:\>ECHO 2A
2A

c:\>ECHO 2B
2B