🦔
Objective-Cの勉強環境を作る
Object-CだけのSwift Packageを作って、Xcodeで編集、コマンドラインで実行するというのが実行引数を渡したり、ファイルをコマンドラインから追加するときとかに融通が効いて良さそうなので、紹介します。swift package init
では作れないので、次のようなファイル構造を手作りします(本当はswift package init --type executable
をもとに作成)
ディレクトリ構造
.
├── Package.swift
├── README.md
└── Sources
└── greeting
├── include
│ └── main.h
└── main.m
Package.swift
は、ソースとか指定しなくてもとりあえずは動くようです。
Package.swift
// swift-tools-version:5.5
// The swift-tools-version declares the minimum version of Swift required to build this package.
import PackageDescription
let package = Package(
name: "greeting",
dependencies: [],
targets: [
.executableTarget(
name: "greeting",
dependencies: []
),
]
)
main.h
#import <Foundation/NSObject.h>
#import <stdio.h>
@interface Person : NSObject
- (void) sayHello;
@end
main.m
#import <main.h>
@implementation Person
- (void) sayHello{
printf("Hello Objective-C World.\n");
}
@end
int main(void) {
id person = [Person alloc];
[person sayHello];
return 0;
}
この状態で、swiftの時と同じように実行できます。
$ swift run greeting
[2/2] Build complete!
Hello Objective-C World.
Discussion