woshidan's loose leaf

ぼんやり勉強しています

iOS

`NS_SWIFT_NAME` マクロでObjective-CのコードがSwiftからどう見えるか規定できる

Objective-Cで書いたメソッドのシグネチャはSwiftから呼び出す時にメソッド名の一部の単語がパラメータ名の一部へ変換されるものがある。 // Objective-C - (void)addToBox:(Item *)item; // Swift 2.3 addToBox(item) // Swift 3.0 add(toBox: item) この変…

iOSのUIをコードで追加して配置する

5回ググって書く気が失せたのでBlogged. // https://qiita.com/i_terasaka/items/2cf7d0f7146f32c3f2c1#%E5%8F%96%E5%BE%97%E6%96%B9%E6%B3%95 let button = UIButton(type: UIButtonType.system) button.frame = CGRect(x: 180, y: 50, width: 100, height:…

iOSでBundleファイルを扱う

.bundle 拡張子のついたフォルダーを用意 その下にファイルを置く .bundle 拡張子のついたファイルをXCode上で追加したいプロジェクトに追加 下記のように NSString や NSData, UIImage などの関数でデータを読み込む NSString* filePath = [NSString string…

XCodeのRun Scriptを試しに触ってみる

iOS用アプリケーション、ライブラリのビルド前後にちょっと作業がしたい場合、XCodeの Run Script でシェル(やシェル経由で起動できる各種言語のプログラム)を起動させることができます。 今日はちょっと試してみました。 簡単なスクリプトの実行 # hello.sh…

iOSアプリをxcodebuildでビルドする(途中)

Appiumの前段階として、Simulatorなどにインストールするビルド済みのAppファイル 拡張子を変更したものが .ipa ファイル https://developer.apple.com/jp/documentation/IDEs/Conceptual/AppDistributionGuide/TestingYouriOSApp/TestingYouriOSApp.html ht…

ボタンのタッチ領域を広げる

iphone - How to expand the hitTest area of a UIButton without extruding it's background image? - Stack Overflow CGRectInset - Core Graphics | Apple Developer Documentation @implementation MyButton : UIButton - (UIView *)hitTest:(CGPoint)po…

ブロックの中でローカル変数を変更したい

ローカル変数は何も修飾子をつけていないとブロックの中で参照はできても変更はできない。 // ダメな例 int count = 0; [Util executeSomeBlock:^{ count += 1; // ビルドできない }]; これだとちょっとしたことを他のスレッドに投げてその結果を受け取りた…

ブロックを引数にして関数を書く素振り

ブロックはObjective-Cではなく、Mac OS X 10.6, iOS4 以降にC言語の機能として実装されたもの。 他の言語の機能でいうとクロージャ。 試しに書いてみる // ブロックオブジェクトの定義 // ^(引数列) { 本体 } // int型の引数を一つ取り、値を返さない関数へ…

とりあえず今日はセマフォを使ってみたい

Javaでよくあるインスタンスによるロックしか実はまだよくわからない感じなので*1、とりあえず叩いてみますね。 セマフォを使わない場合 // エキスパートObjCからの引用 dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAUL…

UIImageViewはデフォルトだと正方形になるのとNSConstraintは親Viewに対して親Viewと子Viewないし子View同士の関係を指定する

NSConstraintは親Viewに対して親Viewと子Viewないし子View同士の関係を指定する これが独学Androiderに理解できなくて理解できた瞬間うぉぉたぁああって感じだった UIImageViewはデフォルトだと translatesAutoresizingMaskIntoConstraints = YES Autoresizi…

GCDでちょっと遊ぶ

バックグラウンドスレッドに非同期で実行したい処理を投げる memo dispatch_async(タスクを入れるキュー, ^{ // タスクの処理内容を表すブロック }); 例 dispatch_queue_t globalQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); di…

iOS9で追加されたMultiTaskはiOS11で下からスライドでDockが出るようになったらしい

iPadのMultiTask概要 iOS9から実装されている iPadで画面右端からスライドさせると、 Slide Over のアプリ選択のUIかすでに起動された二つ目のアプリの画面が出てくる Split Viewが実装されているアプリを起動している時に Slide Over のビューを出すと2つの…

\[LayoutConstraints\] Unable to simultaneously satisfy constraints. のログを確認する

コードで NSLayoutConstraint を追加してレイアウトを記述していると、 2017-08-23 20:08:37.967040+0900 TestApp[19312:543735] [LayoutConstraints] Unable to simultaneously satisfy constraints. Probably at least one of the constraints in the foll…

StoryBoardを使わない方法 at Swift

qiita.com 上記の記事をSwiftでやりました、というお話です。 import UIKit @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? func application(application: UIApplication, didFinishLaunchingWithOpti…

Auto Layout ドリルを解きました

Auto Layout ドリル · mixi-inc/iOSTraining Wiki · GitHub のドリルを解きました。 10日ぶりなんて久しぶりすぎてSpotlight使って探すくらいXcodeのアイコンを忘れていたとかそういうことはありません。 昨日、雑に右下の方にアイコンが3つあると書きまし…

AutoLayout入門を読んだ

https://github.com/mixi-inc/iOSTraining/wiki/Auto-Layout%E5%85%A5%E9%96%80 読みました。 パーツのリサイズには、AutoLayoutとAuto Resizing(springand struts)があります AutoLayoutは比較的新しいトピックで、iOS6や OS X 10.6以降で利用できる(iOS5.x…

3.3 UIViewの問題について考えてみる

ここの問題を考えています。 問題 アニメーション完了後に画像を元に位置に戻るアニメーションを実装して下さい。(HINT:アニメーションブロックのネスト) 考えた事 アニメーション完了後ということはcompletionを使うのでしょうか。 元の位置に戻る、とい…

3.1 UIView

後追いで、 https://github.com/mixi-inc/iOSTraining/wiki/3.1-UIView を読んでいます。 学び始めはなんだって感動しますし、ojisan.pngと入れてOJISANが出てくる事にも感動しますよね。 昨日分を少し整理して投下。 UIViewってStoryboard上でViewを選択し…

2.2 UITabController

後追いで、 2.2 UITabController · mixi-inc/iOSTraining Wiki · GitHub を読んでます。 昨日はちょっとまとめて、とちった感じのデバッグだけしました。 UITabBarControllerを使って画面を作ってみます。 TabBarControllerを使って画面を作っていく際に、自…

第3回 mixi iOS trainingについてメモ

ちょっとばたばたしていたので、とりあえず、簡単に書いています。 今週末、また追記してブログの方に移すと思います。 最近やたらとmacのファンがうるさくて充電回らないし、泣きそうになっていたところ、Sublime Textがずっとこの辺のメモをファイルに保存…

iOS View Controller カタログ NavigationController について斜め読みしたメモ

iOS

navigationBarプロパティについて少し気になったので、View Controller Programming Guide for iOSを読んだところ、 For information about how to configure and use navigation controller objects, see Navigation Controllers in View Controller Catalo…

1.5 UIViewController3 ライフサイクル

内容 life cycle 生成 イニシャライザ viewの読み込み完了時 表示 viewが表示される直前 viewが表示完了した直後 レイアウトの調整 レイアウトの調整が済む直前 レイアウトの調整が済んだ直後 破棄 life cycle UIViewControllerのインスタンスは生成されてか…

1.4 UIViewController2 ModalViewController (storyboard) 作業的なこと

内容 先にModalで行われる処理の概要を説明して後で、作業を各個撃破する方針でまとめ直しました。 長くなったのでDelegateパターンとかViewControllerの親子関係とか知識的なことは前記事に回しました。 作業的なこと モーダルを表示するための作業 storybo…

1.4 UIViewController2 ModalViewController (storyboard) 知識的なこと

内容 先にModalで行われる処理の概要を説明して後で、作業を各個撃破する方針でまとめ直しました。 長くなったので、作業分は次の記事にします。 知識的なこと Modal概要 UIViewControllerとModalViewControllerの親子関係について Modalを削除する処理の責…

1.3 UIViewController1 UIViewController のカスタマイズ

元の資料よりコンパクトにしようと工夫していたはずが、気がついたら長くなってた。残念。 内容 注意:この記事では、見出しでは字数の都合で、UIViewControllerのサブクラスをSubUIViewControllerと表記し、本文中では具体的なクラス名で表記しています。 U…

1.2 メモリ管理

Markdown方式に変えたはいいものの、見出しの書き方が落ち着きません。 メモリ管理 Objective-Cでのメモリ管理の方法 Objective-Cではインスタンスへの参照回数が1以上であればメモリ領域が確保され続けます。 たしか、Cではメモリの領域の確保・解放にmallo…

Objective-Cの基礎を少しまじめに復習した

一週間経って忘れているところがかなりあったので、二回目の予習前に復習しました。 そして、無名カテゴリとクラス拡張の違いはよくわからないことが判明しました。 内容 ショートカットキーのおさらい Cmd+G - 検索において該当した次の検索結果へ移動 Shif…