objective-c

CoreData再学習_Appleのサンプルを読む_TaggedLocations

CoreDataがなかなか身に付かないので改めてAppleのサンプルコードを読んでます。 今回はTaggedLocationsを読んだので、気付いた事やクラスの依存関係をメモします。 ・どんなサンプル? イベントとタグを位置情報を紐づけて登録できるアプリです。 ・何が学…

コンビニエンスコンストラクタの初期化にはselfを使う

コンビニエンスコンストラクタを実装する時はselfを使う。 (例1) User : NSObjectクラスを初期化するコンビニエンスコンストラクタ + (instancetype)userWithName:(NSString *)inName age:(NSInteger)inAge { // 悪い例 //return [[User alloc] initWithName…

objcでinitの呼び出しを抑制する

カプセル化の破壊を抑える為setterは出来る限り使わず、 以下の指定イニシャライザの利用を推奨させたい時(initを呼べない様にしたい) - (id)initWithName:(NSString *)inName age:(NSInteger)inAge ヘッダにclang language extentionsを書けば[[Foo alloc] …

objcの関連参照でUIViewにプロパティを追加してみる。

objectivecの関連参照を試したのでメモ。 UIView拡張で試したサンプル(github) objcのカテゴリではインスタンス変数の追加はできない。 関連参照をつかえば疑似的に変数を追加できる。 必要な手順。 1. objc/runtime.hのインポート #import 2. 追加する変数…

objective-cで確保したメモリサイズを調べる

objective-cで確保するメモリサイズについてのメモ sizeof演算子で変数型のサイズを表示できる。 以下はその例 // (c99ではzuでsize_t型を出力可能) printf("sizeof(short int) = %zu\n", (size_t)sizeof(short int)); sizeofの戻り値size_tは実装によってサ…

NSNumberを要素に持つNSArrayを使う際のメモ。

NSNumberを要素に持つNSArrayを使う際のメモ。 最頻出要素はNSCountedSetを利用。 参考: 最頻出要素の取得(stackoverflow) キー値コーディングプログラミングガイド // NSNumber配列を初期化 NSArray *numbers = @[@9,@4,@5,@1,@1,@17,@9,@6,@9]; // 昇順ソ…

一日一度だけ何かする処理のメモ

パズドラをやった事はないですが、 一日一度だけアラートを表示する等の処理を、 UserDefaultsで作成してみたのでメモ。 (20131218微妙に修正)1.起動時にアラート表示日を保存 2.アラート表示日がなければアラート表示 3.アラート表示日が前回表示日と変わ…

非形式プロトコルのメモ

非形式プロトコルのメモ、あえて非形式を使う利点はなさそうだった 今は形式プロトコルでも@optionalで指定すれば実装は任意にできる。 実装を強制する場合は@requiredで指定する。 その方が明示的でわかりやすい Objective-Cプログラミング言語(Apple公式) …

データを管理するクラスを作ってみる。

基本かもしれないですが、UITableViewController内で使うデータアクセスのコードは、 データ管理クラスを間に挟むと、データ詳細を意識しなくて良いので使いやすくなります。 例えば、画面にこんな感じに魚データを表示する場合。 DataManagerというクラスを…

CotEditorの正規表現スクリプトメモ(property->synthesize)

synthesizeが省略できる今となっては無用の長物ですが、 @propertyから@synthesizeを自動生成するCotEditor用のperlスクリプトを書いてあったので、 一応記載しておきます。 ・対象のobjc @property(nonatomic) BOOL isRun; @property(nonatomic) BOOL isFin…

NSFetchedResultsControllerDelegateのセル削除ではまった

題のとおり、NSFetchedResultsControllerDelegateでのdeleteで1h程はまりました。 40秒位で読める程度の中身のなさです。【結論】 didChangeObjectの引数indexPathとnewIndexPathを書き間違えていた事。 単純かつエラーにならないので気づきにくかった。 【…

ボタンファクトリーを作ってみる(create button factory with objectivec)

こんばんわー、色々なボタンを作るとコードが汚くなるのでボタンファクトリー(factoryClass)を作ってみます。 デザインパターンに精通している訳ではないので、玄人の方は是非アドバイスを下さい。 【 参考 】 ファクトリメソッド(wiki) iPhoneのUIのスキン…

Objective-Cのブロック(Block)が苦手だけど少し覚えた過程

世間様はiPhone5でにぎわってますねー。 まだまだ勉強中の身なんですが、Objective-Cのブロック(Block)についてテクニック的な話ではなく、 自分がブロックを学ぶときどうしたか?というプロセスってほど大げさでもない手順を書きます。 [参考] Apple公式ブ…

NSRangeの使い方

NSRangeとは?NSRangeはlocation(位置)とlength(長さ)の2つを持つ、"範囲"を表す構造体です。 文字列の検索、分割、切り出し等に重宝します。 ※2013/06/11 正規表現検索のサンプルを追加 例えば以下のようにrangeOfStringメソッドを使うと、 "列です"と…

iPhoneアプリ開発でテストを試してみる。

少しずつ学習を進めているiPhoneアプリのテストについて書きます。今回は一番簡単に使えるSenTestingKitを使い、簡単な「足し算」メソッドを作って、テストを実行させるまでを試してみます。ボタンを押したりのテストはまだ試しませんが、 万が一やる気がで…

AudioPlayerを使っての音を鳴らしてみた

AudioPlayerを使って「笛」の音を鳴らしてみたので調べたことをメモ。 肝心の笛(ホイッスル)の音声をどう作ったかはそのうち書きます。 ざっくりとできること 今回試したコード 今回使うAudioPlayerはAVFoundationというフレームワークに入っています。 (…

NSObjectのサブクラスを作る

objectivecで自作クラスを作る簡単な手順 「New File」>「Objective C-class」で作れます。 たとえばユーザーを表すクラスなら、クラス名を「User」に、 「Subclass of」で「NSObject」を選択して作成します。 NSObjectはObjective-cのクラスの祖先のような…

Objective-cのフォーマット指定子まとめ

わかればいいやという程度、以下ドキュメントの適当意訳 ドキュメント外のフォーマット指定子も少しずつ追記予定。Apple公式 String Format Specifiers 指定子 説明 %@ Objective-Cのオブジェクト、descriptionWithLocale又はdescriptionによって返された文…

自分のクラス内のメソッドを呼び出す

Objective-Cのクラス内でメソッドを自作して呼び出す方法メソッドとは編集オブジェクト指向プログラミング言語において、あるクラスないしオブジェクトに所属するサブルーチンを指す。この用語はSmalltalkにより導入された。C++におけるメンバ関数。 続きを…

NSDataDetectorで電話番号を簡単に検索してみる

objective-cでテキスト内のURLと電話番号を簡単に検索してみました。使ったのはiOS4以上で使える「NSRegularExpression」のサブクラス「NSDataDetector」です。「NSDataDetector」は住所、電話番号、URL等を複数組み合わせて、文字列から検索できます。複雑…

NSTimerでiPhoneのストップウォッチ的(超劣化版)なものをちょっと試す

NSTimerを使って時計アプリを作っているので、少しずつできた事をメモします。 NSTimerは定期的に処理を実行するものなので、そのままでは時計になってくれません。とりあえず1秒毎に00:00(mm:ss)の形式でUILabelを更新したいなと思いました。iPhoneデフォル…

よく使う数値や文字列をhファイルにまとめる。

iPhoneの幅は320なので、コード内にこの様に書けますが、、 self.beforeX = 320; よく使う数値や文字列はできればハードコーディングをしたくないです。 こんな感じに使えると分かりやすいし、定数化してあるので後で変更があっても楽です。 self.beforeX = …

Predicate Programming Guideu一部意訳

Predicate Programming Guide内の、 Creating Predicatesの章を1部意訳しました。 (なんとか自分が読める程度の意訳、良い訳があれば是非教えて下さい。)目次 フォーマット文字列を使って述語を作成する 文字列定数、変数、ワイルドカード ブーリアン値 …

構造体の学習

Objective-Cで書く、構造体について少しまとめ。 構造体は、その名の通りデータを扱う構造です。変数との違いは、色々な種類のデータをまとめて扱える所で、 例えば、Excelの表の様なものでしょうか、1人のユーザーを表すExcelの表があるとして、その表には…