Archive for the ‘Xcode/Interface Builder’ Category
JavaとObjective-C間で正しくAES暗号をやり取りする方法


Objective-CでAES暗号化をする方法を調べると、以下のように書かれている事が多いが、これだとJavaと互換性がない。
1;
最初、Java(サーバー)側で暗号がデコードできなくて、色々調べてみたらAES暗号のBlock cipher modeが違うという事が分かった。
解決方法はJava側でObjective-C標準のCipher Block Chaining (CBC)モードに合わせてやるか、Objective-C側の実装を切り替えてやる必要がある。
このブログにObjective-C側の実装を切り替える方法が記載されていたので、参考にして欲しい。
以下のコードを保存して、プログラム中からimportすると上の書き方でJavaで復号できるAES暗号処理が行える。
続きを読む »
Objective-Cで正しくURL encode/decodeする方法

以下のような方法でURLエンコード/デコードできると書かれているサイトが沢山あるが、大嘘つきもいい所だ。特殊文字を取りこぼしまくってる。
//encoding
NSString *escapedUrlString
= [plainString stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding];
//decoding
NSString *decodedUrlString
= [escapedUrlString stringByReplacingPercentEscapesUsingEncoding:NSASCIIStringEncoding];
多分これで全部フォローできていると思うが、もし足りない文字があればコメントで教えて欲しい。
//encoding
NSString *escapedUrlString = (NSString *)CFURLCreateStringByAddingPercentEscapes(
NULL,
(CFStringRef)plainString,
NULL,
(CFStringRef)@"!*'();:@&=+$,/?%#[]",
kCFStringEncodingUTF8 );
//decoding
NSString *decodedUrlString = (NSString *) CFURLCreateStringByReplacingPercentEscapesUsingEncoding(
NULL,
(CFStringRef) escapedUrlString,
CFSTR(""),
kCFStringEncodingUTF8);
というかURL encode/decodeの標準関数が実はあるけど、俺が気づいていないだけなのか?
Xcode 4.0.1でInterface BuilderのInspectorを表示する方法

Interface BuilderはXcode付属のUIデザイン用のアプリだが、Xcode 4.0.1からXcodeに組み込まれた。今までは別アプリだったのだが、それが一緒になった。
ただ、今までもXcodeから直接起動できたので、特別便利になったという訳ではない。感覚的に起動が速くなった気がするが、計測してないので本当に気のせいかもしれない。
久しぶりに、UIデザインを変更しようと、Xcodeのサイドビューのリソース一覧から.xibファイルをダブルクリックしてみたのだが、UIの画面は表示されるが、コンポーネントが入った一覧が表示されないではないか!ドラッグアンドドロップでUIを描いていくのに、そのもととなるコンポーネントが入っている一覧ビューが無いのである。
色々いじって分かったのが、コンポーネント一覧を表示するには、[option]+[command]+[1]で、ファイルインスペクターを右に表示すると、その下半分が期待したビューであるということ。
UIが一気に変更されると最初の一回が困る。。。



