NSDictionaryのKeyに自作のクラスを使う場合は以下の3つの実装が必要。
- (id)copyWithZone:(NSZone*) zone
- (BOOL)isEqual:(id)object
- (NSUInteger)hash
copyWithZoneはKeyはコピーされてNSDictionaryに保存されるため、インスタンスのクローン処理を実装する必要がある。
hashとisEqualはobjectForKeyでNSDictionaryからValueを取得時に使われる。
まずhashが用いられ、その後isEqualが呼ばれる。
実装はhashはインスタンスごとに一意なhash値を返すことと、isEqualはインスタンスが同じかどうかの判定を行う。
2012年5月15日火曜日
2012年5月13日日曜日
iOSプログラミング忘備録その2
クラスの比較
[self isKindOfClass:[object class]]
NSDictionaryの中を順番に取り出す方法
[self isKindOfClass:[object class]]
toString的なもの
- (NSString*)description
NSDictionaryの中を順番に取り出す方法
for (NSString* key in xyz) {
id value = [xyz objectForKey:key];
// do stuff
}
キーボードを閉じる
[searchBar resignFirstResponder]
Enterでキーボードを閉じる
StoryBoardでの画面遷移時に遷移先のViewControllerに何か渡したい場合
デフォルトの色を変える
[[NavigationBar appearance] setTintColor:[UIColor redColor];
id value = [xyz objectForKey:key];
// do stuff
}
キーボードを閉じる
[searchBar resignFirstResponder]
Enterでキーボードを閉じる
returnKeyTypeを"UIReturnKeyDone"にし、
memoField.returnKeyType = UIReturnKeyDone;
UITextFieldDelegateプロトコルを継承して、delegate登録。
memoField.delegate = self;
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[memoField resignFirstResponder];
return YES;
}
StoryBoardでの画面遷移時に遷移先のViewControllerに何か渡したい場合
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
segue.destinationViewController を使う。
UIButtonへの画像の貼り付け
プロパティにセットするのでは反映されない。
buttonA.imageView.image = image;
setImageを使う
[buttonA setImage:image forState:UIControlStateNormal];
デフォルトの色を変える
[[NavigationBar appearance] setTintColor:[UIColor redColor];
2012年5月5日土曜日
AmazonのProduct Advertising APIはモバイルで使えない
AmazonのAPIを使ってiPhoneアプリを作ろうとして利用規約を読んでいたら致命的すぎる条文があって終了のお知らせです。
以下関連部分なんですが、「携帯端末で使うな」という半端なく厳しい条文があるのでiPhoneどころか全てのスマホ、ガラケー全部アウト。
(e) お客様は、当方の事前の書面による同意なしに、携帯電話またはそ の他携帯端末、いかなるセットトップボックス(例えば、地上・BS・CATV受信用ボックス、デジタルビデオレコーダー、ストリーミングビデオプレイヤー、ブルーレイプレイヤー、DVDプレイヤー等)または、インターネットテレビ(例えば、Google TV、ソニーBravia、パナソニックViera Cast、アクトビラ、Vizioインタネットアプリケーション等)での使用を目的とした、または意図したアプリケーション上で、またはこれらに関連して、商品関連コンテンツを使用することは できません。
https://affiliate.amazon.co.jp/gp/advertising/api/detail/agreement.html?ie=UTF8&pf_rd_t=501&ref_=amb_link_60843929_4&pf_rd_m=AN1VRQENFRJN5&pf_rd_p&pf_rd_s=assoc-center-1&pf_rd_r&pf_rd_i=assoc-api-detail-5-v2
どうしてここまで厳しい制約にしているんでしょうか。
Amazonにとってはいろいろ使ってくれたほうがおいしい気がしますが。
こうしてみるとコンテンツを持っているところは強いなぁとしみじみ思うわけです。
以下関連部分なんですが、「携帯端末で使うな」という半端なく厳しい条文があるのでiPhoneどころか全てのスマホ、ガラケー全部アウト。
(e) お客様は、当方の事前の書面による同意なしに、携帯電話またはそ
https://
どうしてここまで厳しい制約にしているんでしょうか。
Amazonにとってはいろいろ使ってくれたほうがおいしい気がしますが。
こうしてみるとコンテンツを持っているところは強いなぁとしみじみ思うわけです。
登録:
投稿 (Atom)