mike-neckのブログ

JavaかJavaFXかJavaEE(なんかJava8が多め)

swift

Swift Package Manager プロジェクト にて CPP(C++) の関数を Swift から呼び出す

一つ前のエントリーの続き。 C++ で作られた関数を Swift から呼び出す方法。 巷には C++ の関数を Swift から呼び出す方法に関する記事が溢れているが、 XCode 前提で Swift Package Manager プロジェクトについて触れてない SPM 使っててもちょっと古い Br…

CPP(C++) の関数を C 言語から呼び出す方法

C 言語を業務でやったことがほとんどない + CPP は完全に触ったことがないので、いろいろググりつつやってみた。 最終的に Swift から C++ で定義されているオブジェクトの関数を呼び出すところまでが目標。 まず、次のような C++ の関数が定義されているも…

Amazon 製 Server-side Swift フレームワーク smoke-framework について

これは Qiita のアドベントカレンダー 2018 の初日のエントリーです。 特に Swift コミュニティに何の貢献もしていないのですが、空いてたのでついポチッと登録してしまいました。 qiita.com 2018 年の 10 月 4 日に Prime Video のエンジニアの Simon さん…

Azure 上の Ubuntu で Swift 4.2.1 を動かす

この3連休で試したのでメモ。 Azure で立てた Linux VM(Ubuntu16.04) にて、 swift の docker イメージにある通りの手順で Swift4.2.1 をインストールしたところ、エラーが出てしまって Swift アプリケーションを動かせなかった。 具体的には libdispatch-de…

Swift から regex.h を呼び出してみる

Swift の正規表現はどうなっているのか以前気になって調べたところ、 Foundation には正規表現がないため、 NSRegularExpression を使うとのことで、実際に試しに使ってみたところ、使い勝手がかなり悪くて使うのを諦めました。そこで、 C 言語に regex.h と…

Swift から C の関数を呼び出す(Swift Package Manager 使ってる)

Swift から C の関数を呼び出す方法を Swift-NIO のコードを読みながら試した。

Swift で byte の配列を標準出力に書き出す

わからんから調べた

Swift-NIO で http クライアントの書き方

Swift-NIO で http クライアントの書き方。 以前失敗してたけど、リベンジしたのでその記録。

DispatchQueue の多重度

DispatchQueue の多重度を調べてみたところ、64個であることがわかった。 【2018/08/31 0:00 訂正】以前50と書いていたが、数え間違えていた…(´・ω・`)

libcurl の curl_multi_socket_action のメモ

Swift の URLSession の中で呼び出されている curl_multi_socket_action の動作を調べていたので、そのメモ。

Swift で Foundation を import するとヘッダーまわりでエラーが発生する場合の対処

以前書いたエントリー mike-neck.hatenadiary.com の対処法が間違えていて、ビルドもなにもできなくなった上に、 REPL で import Foundation をやっても同じエラーが出てしまう割と深刻な状況の対処法。 (巷にある ~/Library/Developer/Xcode を消すやつが何…

Swift Package Manager が Objectiv-C module 'Darwin' をビルドできなかったときの対策

Swift Package Manager が不調(?)で、 swift package generate-xcodeproj すると、コケる 【2018/08/05 22:27 追記】この方法は正しくない。正しい対処の仕方は不明。 $ swift --version Apple Swift version 4.1.2 (swiftlang-902.0.54 clang-902.0.39.2) T…

Swift-NIO で HTTP Client を書いてみる

この前の土日に Swift-NIO を使って HTTP Client を書いてみたが、うまく動かなかった。 Bootstrap 基本的には Netty と同じ。 ClientBootstrap のイニシャライザーを呼び出して、 EventLoopGroup と ChannelOption と ChannelInitializer(Channel -> EventL…

URLSession による HTTP 接続と libcurl

swift で HTTP でAPIを呼び出すときなどは URLSession#dataTask(with:,completionHandler:) を使うのが一般的らしい。 guard let url = URL(string: "http://localhost:8080/api") else { throw MyURLError.invalidURL } URLSession.shared.dataTask(with: u…

Swift で JSON のデコード

Swift4 での JSON 文字列からオブジェクトへの変換方法のメモ. もっと詳しく調べたい場合は公式のドキュメントを調べた方がよい. これからデコードするJSON { "id": 219038 , "name": "James Thunder" , "password": "s0r23ndsn0q3mf083259" , "created_at":…

Swift-NIO の ChannelInboundHandler/ChannelOutboundHandler のメモ

単なるメモ Swift-NIO の ChannelInboundHandler/ChannelOutboundHandler を記述する際のポイント ChannelInboundHandler Netty の ChannelInboundHandler と同じく、基本的には channelRead(ctx:ChannelHandlerContext, data: NIOAny) を実装する NIOAny 型…

Swift Package Manager のメモ

とある理由により、 Swift Package Manager を使っているけど、どこに書いてある方法を真似しても(Swift のドキュメントですら)エラーが出てしまうので、自分用にメモを取ることにした プロジェクトの作成 プロジェクトを作成するには swift package init コ…

AppCodeでSwift書いてみたメモ

こんにちわ、みけです。 とりあえず、日曜プログラマーとして、 AppCodeでSwiftのコードを書いてみることにしました。 その時の感想というか、メモというか、なんというか… MAC OS X10.9上で動くコンソールアプリケーション Swiftほとんど触ったことがないの…