2012-01-01から1年間の記事一覧
忘れないようにメモ。 [PROJECT]-[APP名]-[Deployment Target]にあるiOS Deployment Targetを最新にする。iOS6でdeprecatedが増えていたので現在のプロジェクトで対象を確認したかったが Targetが5.0に設定されていたのでdeprecatedが出てこなかったという。…
CoreDataを使っていてデータ挿入後の保存時にエラーが吐き出されていた。 insertされたデータがズラズラと載っていて最後に(Cocoa error 1570.)とあった。 色々調べているとエラーログの中に NSValidationErrorKey = place; という記述を発見した。 現在使用…
リレーション関係にある親テーブルのデータを削除したら、そのデータに紐づく子テーブルのデータまで削除されてしまった。 なんでカスケード削除されているのかと思い色々調べたところ、CoreDataの削除オプションを設定できることを知りました。 [DB名].xcda…
必要なフレームワークを追加していない場合や#importで.hじゃなく.mファイルをimportしていると出る。参考URL http://d.hatena.ne.jp/goodbyegirl1974/20120920/1348106337
UIWebViewでTwitterのハッシュタグ検索結果画面のmobile版URLを表示したらきちんと表示されない現象が起きた。 (mobile版にした訳はUIが見やすかったため。) UserAgentを変更するといけるようだ。 UIWebViewを初期化する前に //UserAgent変更 NSDictionary *…
UIScrollViewのデリゲートである - (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollViewを使えば自動でScrollViewに配置したViewもピンチイン、ピンチアウトに合わせて拡大・縮小されるが このデリゲートメソッドは1つのViewしか返せない。 …
ネットワークに接続しているかどうかの判定は凄く簡単で Reachabilityを使えば良い。 ReachabilityクラスはAppleのサンプルコードReachabilityから入手できる。Reachability.hとReachability.mをプロジェクトに入れて SystemConfiguration.frameworkをフレー…
親Viewでタッチイベントを取得したい場合のみ 子Viewで設定されている [_childview setUserInteractionEnabled:YES];の設定を [_childview setUserInteractionEnabled:NO];にしてやれば子View上をタッチしたイベントが親Viewのタッチイベント処理まで流れる。
外部のサーバにあるxmlファイルじゃなくて自分のプロジェクト内にxmlファイルを置いて それを読み込んでリクエストを作成してNSURLConnectionでNSDateを取得したかったんだけど NSString *filePath = [[NSBundle mainBundle] pathForResource:[ファイル名] o…
CoreDataでIN句を使用する方法は NSArray *users = [NSArray arrayWithObjects:@"user1", @"user2", @"user3", nil]; NSPredicate *predicate = [NSPredicate predicateWithFormat:@"user IN %@", users];Not INは NSArray *users = [NSArray arrayWithObjec…
SeminarテーブルとPlaceテーブルでリレーションを持たせてSeminarテーブルにPlaceオブジェクトのカラムであるplaceカラムを作成。 Seminarテーブルから一定の条件のデータを取得した際に Seminar *semi = (Seminar *)[_fetchedResultsController objectAtInd…
SeminarテーブルとPlaceテーブルを作成して対多のリレーションを作成した。 SeminarテーブルにPlaceテーブルのオブジェクトを持つカラムplaceを定義。 Seminarテーブルのplaceカラムの値を取得しようとしてplaceを指定してNSDictionary型で取得したところ と…
deallocメソッドで親クラスのdeallocを呼び出すのは必ず自クラスのオブジェクトを全てreleaseした後。 最後に[super deallo]を呼ぶこと
CoreDataを使用してsqliteファイルを生成すると自分で定義したカラムの他に Z_PK,Z_ENT,Z_OPTという3つのカラムがシステムに自動で生成されている。 iPhoneアプリだけでなくAndroidアプリでも同じsqliteファイルを使いたかったのでこれについて調べた。 ま…
Xcode4.5で新たに画面をxibファイルで作成しNavigationControllerで遷移すると iOS6では問題なく遷移したのに対してiOS5以前の環境ではクラッシュした。 原因はXcode4.5から.xibファイルを作成すると自動でAutolayoutが有効になるから。 対処法としては該当…
Xcode4.4を使うようになってから#importでクラスを読み込む際に補完機能による読み込みができなくなった。 対処法は幾つかあるようだが最終的にプロジェクトの[TARGETS]-[プロジェクト名]-[Build Settings]-[Search Paths]-[User Header Search Paths]に [+]…
アプリで横画面対応をしているときに詰まったのでメモ 単純に全画面対応にするには - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { // Return YES for supported orientations return YES; }普通は上記でO…
実際にアプリにファイルを配置してそのファイルのpathを取得する為に [[NSBundle mainBundle] pathForResource:[filename] ofType:@"sqlite"]で取得しようとしたんだけど返される値が常にnullだった。この現象は、ファイルをアプリへ組み込む際に[Target Mem…
xibファイルでカスタムセルを作成した。 セルにはボタンビューを載せて、そのボタンがタッチされる度にボタンの色が変わるようにする。 その時につまづいたのでメモ - (void)doCellStarButtonTapped:(id)sender event:(id)event { NSSet *touches = [event a…
Xcode4.4を使用していて実機にインストールしたsqliteファイルを参照するために[Organizer]-[Devices]-[Applications]から 該当のApplicationをダウンロードしようと思ったら Permission Denied という警告が出た。解決法: Xcodeメニューから[Xcode]-[Prefe…
CoreDataのNSPredicateで条件を絞り込む時にlike句を使う場合 ? → 任意の一文字 アスタリスク(*) → 0文字以上の文字列として認識されるので、*と?を検索に使いたい場合はエスケープしてあげる必要がある。2012/08/01追記 エスケープ対象の文字は分かったが\*…
UItableViewCellにUITextFieldをaddSubviewしてテキストフィールドを載せたセルを 1セクションに1セルの形式で9つ作成した。 動作確認したところ、スクロールすると他のセクションのセルが重なったりして滅茶苦茶になっていた。 原因としてはテーブルビュ…
svn checkout http://gdata-objectivec-client.googlecode.com/svn/trunk/ gdata-objectivec-client-read-only 上記コマンドでプロジェクトを落とす 途中で (R)eject, accept (t)emporarily or accept (p)ermanently? と聞かれるので p でEnter(これしないと…
[[UIScreen mainScreen] scale]で取得した値が2.0の場合はretinaディスプレイ搭載機種。 iPadかiPhoneかの判別を先にしてあげてから if([[UIScreen mainScreen] scale] == 2.0f) { //Retina } else { //Not Retina }でretinaかどうか判定するのがよろし
APIにデータを投げるときはURLエンコードするのは基本! NSString *str = (NSString *)CFURLCreateStringByAddingPercentEscapes( NULL, (CFStringRef)エンコード対象を含む文字, NULL, (CFStringRef)@"!*'();:@&=+$,/?%#[]", kCFStringEncodingUTF8 );参考U…
Instrumentsでメモリリークの確認をしようとしたところ Target failed to run: Remote exception encounteredとなって起動しなかった。 Edit Schemeの Run [App名]のBuild Configuration と Profile [App名]のBuild Configuration を Debugに設定し重複名前…
Twitterからあるアカウントのタイムラインを取得して表示するアプリをいじっている時に Response Code 400 が返って来た。。 URLもおかしくないのに変だと思って調査したらTwitter APIの制限とのことorz 1時間に150アクセス以上するとBad Request(400)が返…
//テーブルAとBにpriceカラムとnameカラムがあり、それぞれから2カラムをNSDictionaryで抽出したとする NSArray *tableA = [self loadA]; //テーブルAから取得 NSArray *tableB = [self loadB]; //テーブルBから取得 //マージ NSMutableSet *set = [[NSMutab…
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section { //nameカラムをセクションタイトルとして使用したい場合 NSString *name = [[[[[_fetchedResultsController sections] objectAtIndex:section] objects] va…
[_fetchedResultsController fetchedObjects] //fetchedObjectsプロパティで全て取得できる //あるカラムだけ取り出したいなら for (int i = 0; i < [[_fetchedResultsController fetchedObjects] count]; i++) { NSString *a = [[[_fetchedResultsControlle…