blockでコールバックを書いたった
blockでコールバックを書く
いい加減、delegateばっかだと、あっちこっち読むのが大変なので書いてみた
まず、呼び出される側から。
// BlockSample.h #import <Foundation/Foundation.h> typedef void (^BlockSampleCallBack)(NSArray *foo); @interface BlockSample : NSObject - (void)hoge:(NSString *)fuga callback:(BlockSampleCallBack)callback; @end
typedefで定義してするほうが可読にいいよねってことらしい。
// BlockSample.m #import "BlockSample.h" @implementation BlockSample - (void)hoge:(NSString *)fuga callback:(BlockSampleCallBack)callback { NSArray *array = @[@"りんご", @"ごりら", @"らぶらぶ"]; callback(array) } @end
次に呼び出し側を書く。
// CalledBlockSample.m // いろいろと割愛 - (void)moDMP { // BlockSampleがシングルトンだったとして... [[BlockSample] sharedManager] hoge:@"これはテストだ" callback:^(NSArray *foo) { NSLog(@"アホな配列がやってくるお %@", foo); }]; } // いろいろと割愛
CoreDataのサンプルでハマった?
もし、あなたが
Receiver type 'NSManagedObjectContext' for instance message is a forward declaration
でハマったら、
たぶん、サンプルではCoreDataのimportがpchファイルに書いてあるはず。
そんなiOS、CoreDataを始めますって方におすすめなのがこの本。
- 作者: 國居貴浩
- 出版社/メーカー: 秀和システム
- 発売日: 2013/11/01
- メディア: 単行本
- この商品を含むブログ (1件) を見る
DBって何だよ(笑)ってレベルからでも、読みやすいと思われ。
ACTION REQUIRED: Google Play Merchant In-app Billing Sample Code Security Update
ACTION REQUIRED: Google Play Merchant In-app Billing Sample Code Security Update
ってメールがきた
diffしてみたけど、ほんと些細な違いだった。
その違いでやられちゃう人もいるんだろけど。
In-app billing v3を使ってて、Rev5よりも古いRevのSampleを丸パクなアプリ
特にIabHelper.javaとSecurity.javaを丸パクはアウト
purchaseの内容をサーバ側でチェックする作りになっていない
この辺に心当たりのある方は、
In-app Billing Rev5が来ているのでチェックしよ。
UIAlertViewのdelegateでダラダラすんの禁止
UIAlertViewでok/cancelをタップした後の処理ってどうしてます?
delegateだけで対応すると、
複数のUIAlertView扱っちゃうと、分岐の嵐。
アラートダイアログが消えたら、○○するとかでも良いのかもだけど、
後々、UIKitが対応してくれるとしたら、blockでやってくれるはず。
また既に多くの人が、そーしてるはず。そいうライブラリもあるし。
あとは、カテゴリにしといてくれないと使いづらい。
シンプルにおさめると、こんなんでいいはず。
Android Spinnerでkey-valueを使うには?
今日は僕の誕生日なので、誕生日ネタを書くことにした。
皆さんもよく唐突に、誕生日を公開しちゃおっかなーて時があるかもしれない。
そんな時に思うのが、
「せんせーい、たんじょうびって、XXXX年とか入るんですかー?」
って事だとおもう。
画面イメージでいうと、こんな感じ。
iPhone, Androidアプリ「Eyeland」よりAndroid版の画面を拝借
Copyright (c) Oceans Inc. All Rights Reserved.
AndroidだとSpinnerでつくれるやーと思ってたんだけど、
「すべて公開とか」表示している名称と、
名称に紐づけたい区分値の管理の管理の仕方が見つからない。
あれー、そいうの標準で用意してないのかなーと思いつつ、
誕生日だしせっかくなので、作ってみた。
- FormActivity.java : Spinnerを表示したい画面さん
- KeyValueAdapter.java : SpinnerにぶっこむAdapterを毎回プライベートに持つのもなんだし
- SpinnerHelper.java : SpinnerにぶっこむAdapterをarrays.xmlから召還
- SpinnerObject.java : getter, setterががが
- arrays.xml : 「表示したい内容」と「表示したい名称と区分値の紐付け」
以下、ソースですけど、
こんなの、もっと簡単に標準で用意してないんすかね
教えてエロい人。
pod installできなくて困っていた件を解決した
気づいたら、こんなことになっていて、、、
> Installing MBProgressHUD (0.7) > GitHub download $ /usr/local/bin/git config core.bare true $ /usr/local/bin/git config core.bare true > Updating cache git repo (/Users/togu/Library/Caches/CocoaPods/GitHub/ef81a51251a828eea52cbd59e57827b0007c9dba) $ /usr/local/bin/git remote update error: cannot open FETCH_HEAD: Permission denied [!] Pod::Executable remote update error: cannot open FETCH_HEAD: Permission denied
言われた通りの場所が、rootになってた
なんでだろー?と思いつつ自分の権限にかえて、pod installで決まり
# ls -l /Users/togu/Library/Caches/CocoaPods/GitHub/ef81a51251a828eea52cbd59e57827b0007c9dba -rw-r--r-- 1 root staff 6028 8 19 18:54 FETCH_HEAD # sudo chown togu:staff