Obj-C と Swift を行ったり来たりする時、気にしておいた方がいいポイント。
・・の前に
Obj-C → Swift コンバータ
世間的には Swift ユーザーの方が多い。しかし、既存プロジェクトは Obj-C で書かれている。
という現状なので、(あるんじゃないかと予想はしていたのだが)やはり Obj-C → Swift 自動変換ツールはあるようです。
こちらの記事などどうぞ。
メソッドのラベル
Swift の良い点の一つが、メソッドのラベルがわかりやすいところ。
Obj-C で
[img drawInRect:rect blendNode:mode alpha:alpha]
と書いていたところが、Swift では
img.draw(in:rect blendNode:mode alpha:alpha)
となる。
Obj-C ではメソッドに第一引数が含まれているから、若干わかりにくい。
Swift は型にうるさくない?
ところで Swift 使っていない人ほど見出しのように誤解している。
スクリプト系の言語っぽい雰囲気出してるからかなあ?
単純に使ってないだけ?
実際には、Swift の方が C より変数の型にうるさいです。
コマンドライン実行環境
このブログでは、けっこう言っているし、実演もしていると思うのだが、ワイは(Swift に限らず)簡単なプログラムをコマンドラインで実行することがよくある。
なので、実行環境の整備の仕方。
Swift の場合は Mac のターミナルや VS code のターミナルから swift -v と打ち込むと
swift -v
Apple Swift version 5.7.2 (swiftlang-5.7.2.135.5 clang-1400.0.29.51)
Target: arm64-apple-macosx13.0
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift-help intro
Welcome to Swift!
Subcommands:
swift build Build Swift packages
swift package Create and work on packages
swift run Run a program from a package
swift test Run package tests
swift repl Experiment with Swift code interactively
Use `swift --help` for descriptions of available options and flags.
Use `swift help ` for more information about a subcommand.
と表示される。
(表示されない場合は、コマンドラインツールがインストールされていない、などの不備がある。準備する)
上では swift build コマンドが表示されているが、もっと簡単には swiftc コマンドを使う。
hello.swift
print("hello Swift")
というプログラムがあったとき、swiftc hello.swift を実行すると hello という実行ファイルを作ってくれる。
VS code だとこんな感じになる。

実行できてますね。
Foundation フレームワークと C 標準ライブラリの機能は、特に指示しなくても使えるようです。
なお、ファイルの冒頭に #!/usr/bin/swift を付加してファイル自体に実行権限を与えるとシェルスクリプトっぽく使える。
実際にこの使い方をするかどうかは微妙ですが。
$0 とかいう書き方が気持ち悪い
この記事参照。
zip とか map とか
zip や map も Obj-C では全く出てこない。
この記事参照。

