SwiftのARCは重すぎるので,代わりに保守的GCを使ってみる.
ARCのretain/releaseを極力避けるためにARCから離れて別のGCを使う.今回,おもちゃレベルのGCを実装して使ってみた結果,ARCと比して意外とよいデータが出てきたので記事にしてみ...
23 search resultsShowing 1~20 results
You need to log-in
ARCのretain/releaseを極力避けるためにARCから離れて別のGCを使う.今回,おもちゃレベルのGCを実装して使ってみた結果,ARCと比して意外とよいデータが出てきたので記事にしてみ...
Swiftの標準ライブラリ中で定義されてるシンボルを(otoolで)眺めていたところ,'atomic'という文字列を含むものがいくつかありました.これは使わない手はない!ということで,使い方をメ...
ソースファイルごとに異なったオプション(主に最適化オプション)でコンパイルしたくなるときがあります.Xcodeで設定してもなぜか反映されません(?).そこで,コマンドラインでmakeなどを使って...
WWDC 2015のSwift関連の発表資料を眺めていたら,待望のRecursive EnumがSwift 2.0で追加されるようですね.同2.0で追加されたswitch以外でのenumパターン...
ちょっとした小ネタです.クロージャ内でタプルな引数の各要素に変数名をバインドさせたいときの話です. 素直な書き方 クロージャの引数がタプルタイプだった場合,どのようにクロージャを記述していますか...
はじめに Swift 1.2にisUniquelyReferencedNonObjCというAPIが加わって,ArrayやStringなど特定の組み込みタイプでしか恩恵を受けられなかったCopy-...
@autoclosureが使えない所で@autoclosure的なことを実現してみた備忘録. @autoclosureを書けないが式を評価して欲しくない例 次のような関数fで,気分としてはhの第...
レンジ(0..<10)などのシーケンス型をシャッフルしたくなるときがあるので,ここにメモしておきます. シャッフルの実装はTAOCPに載っていたアルゴリズムP1を使います. 実装 func...
Xcode 6.1 Beta 3で仕様が変更され,Anyタイプの変数に関数タイプを代入できるようになりましたので,以下の話は無意味です。 関数のMirrorTypeから関数に戻す方法を試...
ちょっと驚いたのですが,何気なく以下のコードを書いたら普通に動きます(Xcode 6.1 Beta)。 var a: Int? = 1 a == 1 // true a < 2 ...
このポストを見てちょっと確かめてみました。 Swiftのnilは「値がない」という定義だと理解していたのだけど,厳密には違うようです。 nil < 0 ...
Swiftでは,Cの構造体でさえもExtensionでどんどん拡張できてしまうのは愉快痛快ですね. C言語でのソケット関連のお約束をSwiftで拡張して使いやすくしてみようという試みです. Cの...
関数やクロージャは,実行時にはただのオブジェクトインスタンス扱いなので,ARCで正しく解放されるように循環参照に気を付けよう,というのは理解できる. では,どういった記述をした場合に循環参照にな...
enumのAssociated Valuesの使い方を練習してみました.こういう使い方もできるな,という程度の遊びです. enum Option { enum Kind { case None,...
Swiftでは関数型でほとんど行けるようなので,ループ構文を無視してなんでも再帰で書きたくなる衝動にかられたりします.そこで,どの程度再帰が使いやすいか調べてみました. 普通の再帰関数 func...
WWDC 2014でのスライド'Advanced Swift'に不動点コンビネータを使った見事な方法が載っていたので問題を簡潔にしてメモしておきます.情報をくれた@Ushio@githubさんに...
ロジック部分に全く手を入れることなし,例えば,デバッグ中に値の変更時のログ表示などができると便利かもしれません.個人的には,代入が絡むとケアレスミス連発で「また,やってしまった」とデバッグ時によ...
enumを Enum IntEnum: Int { case A = 0xA000, B = 0xB000, C = 0xC000 } Enum StrEnum: String { case A...
いろんなタイプをextensionしまくって味をしめてしまうと,関数タイプも,と欲が止まりません. 気分としては,こんな感じで. extension (Int) -> Int { funt...
バイナリファイルから整数値を取り出すようなことがある場合,バイト配列を整数に変換する関数を用意しておくと便利です.このときの関数はgetInt32()やgetUInt64()などと整数のタイプご...
23 search resultsShowing 1~20 results
Qiita is a knowledge sharing service for engineers.