面白きことは良きことなり

拙く未熟なiOSエンジニアの備忘録と戯言

Objective-C

iOS9系のiPadで不可解なフリーズ現象

iOS9系のiPadで不可解なフリーズ現象に遭遇し、原因はわからないものの解消することができたので、 今後同じことに遭遇した時のために、備忘録として記載。 最小限のテストプロジェクトで試してみたが、再現できなかった。 発生した条件 iOS9のiPad端末(ただ…

CGFloatを使う時の注意点

Objective-CやSwiftを使ってiOSアプリを開発する時、小数点使用する型は8割CGFloatを使う。 このCGFloatを使う時に Use of undeclared type 'CGFloat': did you mean to use 'CGFloat'? というエラーが出たことがあった。 解決方法は単純に、UIKitをimportす…

presentedとpresentingの違い

たまにpresentedviewcontrollerとpresentingviewcontrollerの違いがわからなくなるのでメモA presentViewController B B presentViewController C となった時、画面手前から奥にかけてC > B > Aの階層になる。この時、Bから見て…、 - presentedviewcontrol…

2016/06/08 備忘録

バグの原因がわからないなーと少し嵌ったところ。sizeWithAttributes:の挙動がiOS7と8以降で異なっていた。 正直もうiOS7のサポートも切られるのも普通になりつつあるから、今後出くわすことはないと思うけど、残しておく。前提:NSAttributeString型で文字…

Switchのcase網羅とif文のコメントの書き方

今日の備忘録 Switchをenum値で書く場合、defaultを使わない SwiftのSwitchはパターン網羅のため、原則defaultパターンを書かないとエラーになる。 ただ、enumを使う場合であれば、全部のenum値のcaseを書くことでdefaultパターン書かずにすむ。 そうするこ…

SwiftとObjective-Cの相互利用と注意点

今であれば新規プロジェクトはSwiftで作られるだろうし、既存プロジェクトであればObjectie-Cで作られており、メンテナンスもObjective-Cで行われるのが大半だと思う。たまにあるであろう、SwiftとObjective-Cの共存するプロジェクトで相互利用するための方…

2016/05/18 備忘録

カメラで使うImagePickerでクラッシュするという報告が上がっていた。 どうも原因を調べると、ピンチアウトやピンチインでズーム等をした際に表示されるzoom sliderが出ている時に、 カメラ画面を閉じるとクラッシュすることがあるらしい。閉じる処理を遅ら…

指摘を受けた内容まとめ

1. init系、deallocでは"self"を使わず"_"でアクセスする 理由:selfでアクセスした際にKVOの監視対象の場合、初期化の時にも値の変化を検知するため プロパティとインスタンス変数(ivar) — ios-practice 0.1 documentation iphone - iOS, using underscore …

NSArrayの書き方で変わる動作

地味に引っかかった初歩的部分。 Objective-Cでモダンな書き方をする場合、下記のことに気をつける必要がある。 NSString *a = @”objectA”; NSString *b = @”objectB”; NSString *c = nil; // case1 NSArray *array1 = [a, b, c]; // -> NSArrayにnilは入れ…

+ UIPasteboard removepasteboardwithname:の振る舞い

+ UIPasteboard removepasteboardwithname: removeと付いているから除外、削除するように見えるが、 実際は、その名前のペーストボードを無効化する。 OS判断でリソース解放されるまでは同名のペーストボードのアクセスは不可能になるため、うかつにRemoveは…