Objective-C

toll-free bridge

NSURL と CSURLRef の相互変換ってどーするんだろ?と Quartz で PDF 操作しているときにちょいと調べた。結論は「変換」でなく「キャスト」で OK :-) > Hello, I have been googling on how to convert a CFURLRef to NSURL. > But it always seems to be t…

NSURL と FilePath の変換

Objective-C – Convert NSString File Path to NSURL and Vice Versa ○ NSURL → File Path NSURL *fileURL = [[NSURL alloc] initFileURLWithPath:@"/dir/file.txt"]; // (1) または NSURL *fileURL = [NSURL fileURLWithPath:@"/dir/file.txt"]; // (2)実行…

NSDataのMD5を計算する方法

データ転送したときに妥当性チェックにMD5を使いたい。でもどーやって計算すればいいんだろと思ってたらNSDataからMD5を計算する方法みっけ。 :-) Create MD5 Hash from NSString, NSData or a File カテゴリを使って NSData に組み込んでる。こんな感じ。NS…

NSData と NSUInteger の相互変換

NSData と NSUInteger の変換ってどーするんだろと思ってたら、サンプルみっけ! How do I convert an NSNumber to NSData? NSUInteger → NSData NSUInteger index = <some number>; NSData *payload = [NSData dataWithBytes:&index length:sizeof(index)];NSData → NSUI</some>…

NSString をセパレータで分割する

CSV を処理したりと何かと使う割にいつも調べてる。メモっとこ。:-) NSString *string = @"hoge,moge,fugo,mogo"; NSArray *names = [string componentsSeparatedByString:@","]; NSLog(@"%@",names);result... (hoge, moge, fugo, mogo) NSStringを特定文字…

Cookie をクリアすれば良かったんだ

NSURLConnection は Connection: close できない で NSURLConnection にダメ出ししてたけど「Cookie クリアすればセッション残らないよ」ってアドバイスもらった。しかもデモ付き。お手数かけました > 石○さん ^^;)BASIC 認証の場合、Cookie に保存されたセ…

NSURLConnection は Connection: close できない

Webサーバの認証方法の1つ、BASIC認証はログインはあってもログアウトできない。一度、認証に成功するとHTTPヘッダに Authentication: Basic xxx と Connection: keep-alive が設定されて、その後は認証なしに保護されたページにアクセスできる、という動作…

The operation couldn’t be completed. (Cocoa error 133020.) の対処方法

NSURLConnection を使って非同期でサーバ接続させて -connectionDidFinishLoading: が呼ばれたら後処理をする、、、ってセオリー通りな処理を書いたつもりなんだけど、CoreData で保存するとエラーが発生する。 毎回同じデータに対して発生するんなら、実装…

Objective-C でスタックトレースを表示する

デバッグしてると「なんでこのタイミングでこのメソッドが呼ばれるんだ?」と思うときがある。そんなとき、スタックトレースを表示できるとルート確認ができて便利。Java の場合 Exception をスローして表示してたけど、Objective-C の場合、出力したいとこ…

UIAlertView でボタン押したら EXC_BAD_ACCESS?

ダイアログは表示できるんだけど、OKボタンを押すと EXC_BAD_ACCESS になる。単にダイアログ表示してるだけなのに?! と思ってたら autorelease が悪さしてた。あらら ^^;) UIAlertView *alertView; alertView = [[[UIAlertView alloc] initWithTitle:@"認…

CGRectを NSString に変換する

あかん、使うときに1回は探してる。UIKit API へのリンクと一緒にメモっとこ。^^;) NSStringFromCGRect NSStringFromCGSize NSStringFromCGPoint

NSData と NSString の相互変換

忘れてること多いからメモっとこ。:-)NSData → NSString NSString *str= [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; NSString → NSData NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];

NSLog で % を出力させる

NSLog でパーセント(%)を出力する方法って %% なのね。今更ながら、メモっとこ。C言語、ちゃんとやってないのバレバレ ^^;) The code for percent sign in NSString format is %%. This is also true for NSLog() and printf() formats. How to add percen…

iOS5 で NSURLConnection メソッドが Deprecated になってる

iOSアプリで非同期にファイルをダウンロードする場合、NSURLConnection のメソッドを使うのがお約束 connection:didReceiveResponse: connection:didReceiveData: connectionDidFinishLoading: connection:didFailWithError: connection:didReceiveAuthentic…

Xcode4でデバッグ設定

あらら、EXEC_BAD_ACCESS が出たよ。retain チョンボか dealloc での解放チョンボってとこかな。:-(デバッグするときのお約束は3つの環境変数をYESで設定すること。 NSZombieEnabled MallocStackLogging NSDebugEnabled Xcode4 になって設定場所が大きく変…

iOS アプリのテンポラリディレクトリ

良く忘れてるからメモっとこ。iOS の場合、アプリ毎にサンドボックスになってる。 The File System - The Application Runtime Environment 各ディレクトリへのアクセスには NSSearchPathForDirectoriesInDomains に定数を指定してアクセスする。定数はこん…

Objective-C のコーディング規約

分かりやすいのあるじゃん :-) Google Objective-Cスタイルガイド 日本語訳

キューを使って非同期ファイルダウンロード

ファイルをダウンロードするアプリを作ってて非同期のスレッドを作ってファイルダウンロードさせてるんだけど、動作するスレッド数を制御したい。 こーゆーときってキュー(Queue)に URL を追加して、空きスレッドがあれば、キューから URL を取り出させて…

NSError コードの調べ方

NSFileManager の -moveItemAtPath:toPath:error: でファイルを移動しようとしたら、こんなエラーが出た。大抵の場合、エラーメッセージから推測できるんだけど、これは不親切。(T^T) The operation couldn’t be completed. (Cocoa error 512.) 仕方ないので…

スレッド間で NSManagedObjectContext を使い回すのはダメらしい

iPad アプリを作ってたら、エラーとともに、良くわからないメッセージ (T^T) Not safe to look up objc runtime data. 試しに上記メッセージで検索すると、スレッドに関係するっぽい FAQ が見つかる。 Not safe to lookup objc runtime data エラーは NSMana…

デバッグ時だけログを出力させたい

iOSアプリでコンソールにログをだしっぱなしにすると申請時にNGになるとか。でも、開発時にはログを出しときたい。どーしましょと思ってたら、マクロ使えば良いんだね。だってベースはC言語なんだし。:-)参考にさせてもらったのはこちら NSLog tips and tric…

高速列挙でハマった

Objective-C は高速列挙(for .. in ..)が使えるんだけど、順序保証されないの忘れててどはまり (^^;)> # interface NSMutableArray *scrollViews_; # implementation @synthesize scrollView = scrollView_; -(void)layoutSubviews { CGSize newSize = sel…

Learn Objective-C for Java Developers が pdf で配布されてるよ

Objective-C で Observer パターン実装するならどーするんだろって聞いたら、こんな本あるよ〜って教えてもらったのが、Learn Objective-C for Java Developers。教えてくれた同僚が Kindle で買って通勤電車の中で呼んでるそうな。 Learn Objective-C for J…

カテゴリ定義ファイル名の命名規則

カテゴリ(簡易プロトコル)を独立したファイルとして定義しときたい。どっかでみたな〜と思ってたけど、Objective-C 2.0プログラミング言語: メソッドのクラスへの追加 で発見。 :-)命名規則はこんな感じ。 ファイル 命名規則 例 ヘッダファイル <カテゴリ…