hachinoBlog

hachinobuのエンジニアライフ

2012-01-01から1年間の記事一覧

カスタムUITableViewCellの再利用

自分で定義したカスタムセルのxibファイルを読み込む場合、xibファイルのIdentifierに 実際のコードで使用するCellIdentifierと同じ名前の値を入れてあげないと再利用されない。例: static NSString *CellIdentifier = @"CustomCell"; UITableViewCell *cel…

UIToolbarTextButtonについて

UIToolbarにUIBarButtonItemを載せて,[UIToolbar subviews]で該当のクラスを引っ張りだしたら UIBarButtonItemじゃなくUIToolbarTextButtonクラスとして抽出された。 UIToolbarTextButtonはググったけどよく分からず。。 普通にUIToolbarTextButtonを使おう…

デバッガの変更

xcode4.3はデバッガが今までのGDBじゃなくLLDBがデフォルトで選択されている。 このままNsLogでコンソールに出力すると文字化けが発生。 なので、xcode左上のSchemeのプロジェクト名の箇所をクリックして[Edit Scheme]-[Run App名]を選択して [Info]タブのDe…

Coredataの読み込み先とかまとめ

CoreDataはモデルファイルと読み込み先のファイルを指定してあげることで 複数のDBもしくは複数のデータファイルから読み込みを行うことができる。 NSPersistentStoreCoordinatorでどのモデルファイル、どのファイルから読み込むのか指定している。exception…

処理を一定時間止める

[[NSRunLoop currentRunLoop]runUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.5f]];これでOK

case文の中で変数宣言対処法

case文の中で新たに変数を宣言してもエラーになってしまうが{}で囲ってやればエラーにならない。 switch(a) { case :a NSString a = 〜; //これはエラーになる break; case:b { NSString b = 〜; //これならエラーにならない } break; }

画面表示時に指定したセルの位置を初期表示させる

該当のセルまでスクロールさせる方法。 NSIndexPath *indexpath = [NSIndexPath indexPathForRow:5 inSection:0]; //該当のセクションと行指定 [aTableView scrollToRowAtIndexPath:indexpath atScrollPosition:UITableViewScrollPositionTop animated:NO];a…

UIBarButtonItemの色を変える方法

UIBarButtonItemは本来、ボタンの色変更が出来ない。 だけど、UIToolbarに突っ込んだ後にUIViewのサブクラスとなった該当のボタンなら色を変えられる。 // Toolbar生成 UIToolbar *toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 460-44, 320, 4…

UIWebViewで表示しているHTMLからjsファイルの読み込み時注意点

UIWebViewのloadHTMLStringで読み込んだ時にbaseURLでリソースのパスを指定してやるのは当たり前なのだが jsファイルの場合はそれだけでは、指定したリソースに存在しないと認識されてしまう。 原因としてはXcodeでjsファイルをコンパイル対象のファイルとし…

iPhoneのMacアドレスを取得する

色々悩んだけど下記のファイルを使用したら簡単に取れた。。ライセンスはMITライセンスです。 https://gist.github.com/662203NetworkInformation.hをインポートしてprimaryMACAddressメソッドを呼ぶだけ。

選択したUITableViewCellの値を動的に変えたい場合

//選択したCell値の変更 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; //後続処理 }これで選択されたCellの情報を取得できるの…

簡単な事だけど注意

setDelegateでセットしたらdeallocでsetDelegate:nilを入れてあげる事。 当たり前のことだけど、それをしていなくてTextFieldで毎回こけてて悩みまくった。。

iOS4.2.1のバグ

UIAlertViewでパスワード認証をしていたところ、正確なパス入力後にアプリが落ちた。 この事象はiOS4.2.1のみ。 原因としてはアプリ起動時にUITextViewのキーボードが日本語になっているかつsecureTextEntryがYESになっている場合に発生。 これもハマった。…

UITableViewControllerの画面へ遷移する場合

UITableViewControllerの場合はUIViewControllerとは違い UITableViewController *vc = [[UITableViewController alloc] initWithStyle:UITableViewStyle〜];で作成してNavigationとかで遷移させる。 nibを読み込ませようとしてずっとこけてた。。簡単な事で…

UIAlertViewの非同期処理を遅らせる方法

ドハマりしたからメモ〜。 パスワード認証とかで認証がOKだったら次の画面に遷移とかを実装してたんだけど UIAlertViewのデリゲートは非同期処理だからデリゲート処理が終わる前に次の処理に流れてしまっていたので苦労した。。 デリゲートの処理(ボタンを押…

iPhoneアプリ申請の審査基準

こんな感じになってるみたい。 http://fladdict.net/blog/2010/09/reject-list.html

継承した時のコーディング

viewdidloadに色々な処理を書くもんじゃないなと。。 継承したクラスからオーバーライドしようにもviewdidloadに色々書かれてたんじゃ 意味がない。。 今更ながら気づきましたorz

GroupedスタイルのTableViewのbackgroundColorについて

とてつもなくハマった。。 GroupedスタイルのTableViewの下にUIImageViewで背景画像を設定したので 当然、TableViewのbackgroundColorをclearcolorにしてやればiPhoneはOKなんだけど iPadは何度やってもグレーになってしまう。。解決法: 犯人はUITableView…

UITableView Groupedで角が黒くなってしまった場合

xibファイルでTableViewのStyleをGroupedに指定して背景画像の上に載せるのでBackgroundをClearColorにしたが 表示を見るとグルービングされたセルの角が黒く直角になってしまった。対処法としてはxibファイルからでなく、プログラムでBackGroundをClearColo…

warning: Unable to read symbols for 〜 (file not found). による警告

実機にアプリをインストールして動かすとコンソールに warning: Unable to read symbols for /Users/[username]/Library/Developer/Xcode/iOS DeviceSupport/5.0.1 (9A405)/Symbols/System/Library/Extensions/IMGSGX535GLDriver.bundle/IMGSGX535GLDriver (…

NSIntegerの宣言

超初級だけどよく間違えるからメモ NSIntegerの宣言は変数の前に * 不要! アスタリスクつけるとWarningになっちゃう

インスタンス変数の初期化

インスタンス変数を下記の用に定義した ClassA *a; この時点で期待していたインスタンス変数の値はnil しかし if (a == nil) {} で判定した場合、華麗にスルーされた インスタンスの定義は明示的にするべしということ ClassA *a = nil;

The model used to open the store is incompatible with the one used to create the store の対処法

DBの定義ファイルをいじった後に前回のsqliteファイルが残っていると データ形式が違うといって出るエラー。 アプリにあるsqliteファイルを削除してやることで解決する。 場所は /Users/[ユーザー名]/Library/Application Support/iPhone Simulator/[version…

CoreDataのFrom句Select句

CoreDataのSelectカラム指定方法。 NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; NSEntityDescription *entitydesc = [coreDataManager entityDescription:@"TableName"]; //from句(テーブル指定) //ここからカラム指定 NSMutableArray *…

NSTimerの解放

NSTimerオブジェクトはinvalidateメソッドを呼んでタイマーを止めてやらないと deallocが呼ばれない。参考URL http://i.studio23c.com/?p=141 http://akisute.com/2009/05/nstimerretainassign.html

UIToolBarにUISegmentedControlを挿入する方法

UIToolBarにUISegmentedControlを挿入するときに 通常のボタンのようにNSArray型にUISegmentedControlを突っ込んでから self.toolbarItems に代入しようとしてもアプリが落ちてしまう。 解決策としては、UIBarButtonItemのinitWithCustomViewにUISegmentedCo…

code sign error [provisioning profile] can't be found 対処方法

Xcodeの[PROJECT]のAny iOS SDKの部分で指定するprovisioningファイルでなくて Xcodeの[TARGETS]の方でもprovisioningファイルを指定できる。 そこで指定しているprovisioningファイルがおかしい場合に出るみたい。参考URL http://icotfeels.blog66.fc2.com/…

UIButtonの文言を右、左寄せにする方法

UIButtonのタイトルを設定するとデフォルトで中央寄せになる。 これを変えるにはUIButtonにラベルを載せたりと色々やり方はあるけど一番簡単なのは contentHorizontalAlignmentプロパティーを使う方法。 UIControlContentHorizontalAlignmentRight 右寄せ UI…

Error Starting Executable '[App名]'

ビルドしてこいつが出たらXcodeを一度再起動してからビルドし直す。 念のためデバイス側のアプリも消去しておく方が確実らしい。参考URL http://d.hatena.ne.jp/captainshadow/20110809/1312862261

Objective-Cでカレンダーの実装

カレンダーはAppleからカレンダーViewのAPIが公開されていない。 カレンダーを使用したければ自分で実装するしかない。。既に作成した人がライブラリを公開してくれている http://meme.efcl.info/2011/08/ui.htmlこの中でも特にオススメは https://github.co…