記事一覧
cocoapodのアップデートに失敗する。
https://qiita.com/shimon_haga/items/abccd95eec5119051ecf
xcodeいれてmacの容量がなくなったら、使わないSimulatorのiOSバージョンを削除。
https://shinespark.hatenablog.com/entry/2018/03/10/090000
ARKitで平面検知する方法
viewDidLoadで
sceneView.delegate = self
viewWillAppearで
let configuration = ARWorldTrackingConfiguration()
configuration.planeDetection = .horizontal
sceneView.session.run(configuration)
すれば、
ARSCN
cocoapodのアップデートに失敗する。
https://qiita.com/shimon_haga/items/abccd95eec5119051ecf
xcodeいれてmacの容量がなくなったら、使わないSimulatorのiOSバージョンを削除。
https://shinespark.hatenablog.com/entry/2018/03/10/090000
iOS UIImageからgifファイルを作成する
ImageI/Oフレームワークを調べていたら、gifを作成出来るという記事を見つけたので試してみました。
コード
import UIKitimport ImageIOimport MobileCoreServicesimport AVFoundationclass ViewController: UIViewController { private var imageArray: Arra
iOSフレームワーク JavaScriptCore
iOS開発のベースの部分はフレームワークで、フレームワークで出来ることを知ることでiOSアプリの実現出来る機能の範囲を知れる。と上司に言われたのでフレームワークを勉強することにしました。
どんなことが出来るのかが知れればノルマ達成で、全フレームワークに対して勉強します。
まずはJavaScriptCore
詳しい記事はこちら
iOS開発でjavascriptが使えて、javascriptの
weakプロパティが参照しているオブジェクトは、テーブルに格納される。
テーブルに入っているオブジェクトが破棄されると、そのアドレスにnilを入れる。
CoreFoundation __bridge
iOSでCoreFoundationフレームワークのオブジェクトはARCが効かないので自分でCFReleaseする必要がある。FoundationオブジェクトとCoreFoundationオブジェクトをキャストする__bridgeを使えば、代入するときに参照カウントを操作できる。
・id→void*
id x = [[NSObject alloc] init];void *y = (__bri
Objective-C クロージャの循環参照を回避
クラスが、自分で保持しているクロージャ(他クラスを保持していて、その他クラスがクロージャを保持している場合も)でselfを参照すると循環参照を起こして、クラスが破棄されなくなります。その結果、メモリを圧迫してしまいます。
この問題を解決する、循環参照を起こさないコードが以下です。
__weak typeof(self) weakSelf = self; self.closure = ^()
[Objective-C]同期処理⇄非同期処理
同期処理を非同期にする。
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ //処理 });
非同期処理を同期処理にする。
dispatch_semaphore_t semaphore = dispatch_semaphore_create(0); dispat
gitで細かくコミットしたのを1つにまとめる
9ec35b1 (HEAD -> master) 追加4eaf7c44 追加3712d238 追加2bf45c47 機能追加
このようにコミットが細かくなったのをまとめます。
$ git rebase -i HEAD^^^^
HEAD^^^^で4つ分のコミットを編集します。
エディタが開き、下記のようにします。
pick bf45c47 機能追加 f 712d238 追加2 f ea
git便利コマンド集
addを取り消す。
$git reset HEAD
直前のコミットを取り消す。(ステージングも取り消す)
$ git reset HEAD^
直前のコミットを取り消す。(ステージングは残す)$ git reset --soft HEAD^
直前のコミットを現在のステージングで上書きする。
$ git commit --amend
ブランチを作成して、そのブランチに切り替える。
$ git