日々精進

新しく学んだことを書き留めていきます

2013-02-01から1ヶ月間の記事一覧

全角・半角を判定する方法

iOS

前に紹介した方法よりこっちの方がよさそう。canBeConvertedToEncodingを使う方法。 iOS - NSString 半角・全角の判定 - Qiita

端末がiPadかiPhoneかを判定する

iOS

端末がiPadかiPhoneかを判定するのにUI_USER_INTERFACE_IDIOMを使おうとしたが、iPadで実行してもiPhoneだと判定されてしまった。 端末はiPadでもiPhoneアプリとして実行されていたらiPhoneと判定されるんだろう。 modelStringを取得してその中にiPadという…

キーチェーン

iOS

DBにパスワードを保存した場合第三者がDBの中身を見られるのでパスワードを抜き取られる可能性がある。 保存先をキーチェーンにすることで暗号化されたログインID、パスワードの文字列を第三者が知ることが難しくなる。 キーチェーンに保存した情報は他のア…

iPad iOS6で画面を回転した時にステータスバーを非表示状態から表示すると画面がタップに反応しなくなる

iOS

・横画面ではステータスバーを表示しない ・縦画面に戻ってきた時にステータスバーを表示したい ・willRotateToInterfaceOrientation:duration:イベントで以下のコードを実行している [[UIApplication sharedApplication] setStatusBarHidden:NO]; この状況…

カスタムビューの大きさがauto resizeされない

iOS

下記のようなコードでXIBファイルからViewインスタンスを生成した場合、CustomViewの大きさを変更しても XIBファイルで定義したViewの大きさは変わらなかった。(flexible height, widthを設定しているのに!) @interface CustomView : UIView { @protected…

UIViewControllerをPush、Popした時のアニメーションを変更する

iOS

デフォルトのアニメーションをさせないようにして、自分でViewをアニメーションさせる。 CATransitionを使うと簡単にアニメーションさせられるらしい。 ios - How to change the Push and Pop animations in a navigation based app - Stack Overflow

ナビバーボタンに画像を使う方法

iOS

UIButtonを作り、UIBarButtonItemのViewにすればいい。 詳しくは↓ iPhone UIBarButtonItem ボタンの色を変えたい場合 - 袖触れ合うも多少の縁

UIImageViewの大きさに合わせて画像をリサイズする

iOS

UIViewContentModeScaleToFillなどを使えばできる。 http://programming-ios.com/objective-c-uiimageview-imagesize-contentmode/

図形を描画するObjective-Cのコードを生成してくれるアプリ

iOS

paint codeを使うと、ベクターデータからObjective-Cのコードを生成してくれる。描画コードのIBっぽい感じ。 PaintCode 結構高いけど自前のViewをいっぱい作る場合は有効そう。

blockを実行する方法

iOS

引数でBlockをもらって、それを実行したい場合は下記記事のようにメソッドを自分で定義しないといけないらしい。 iphone - Blocks instead of performSelector:withObject:afterDelay: - Stack Overflow [block run]とかで実行できればいいんだけどなあ。

Pointer to non-const type 'NSError *' with no explicit ownership.エラー

iOS

__autoreleasingを使うとエラーが解消できる。 objective c - Automatic Reference Counting: Pointer to non-const type 'NSError *' with no explicit ownership - Stack Overflow

S3に簡単にファイルをアップロードできるFTPクライアント

mac

Transmitというアプリを使えばS3に簡単にファイルをアップロードできるらしい。今度使ってみたい。 S3にブログの画像をホスティングすることにしたよ! - kasajei

UIActivityIndicatorViewの大きさを変更する

iOS

標準のオプションでは大・標準の二種類が使える。 UIActivityIndicatorView - iPhoneアプリ開発の虎の巻 より細かく変えたかったらスケールを設定して変更する方法があるらしい。詳細は下記記事参照。 iOS 5からのUIActivityIndicatorViewの変更 - もっと、…

モーダルビューの回転制御

iOS

通常のビューコントローラのヒエラルキーにいるビューコントローラ(rootViewControllerから辿れるやつ)はrootViewControllerの回転設定によって回転するかどうかが決まるが、 モーダルビューは自分で回転するかしないかを制御しないといけない。 iphone - …

文字が半角かどうか判定する

iOS

URIエンコードして4文字以上なら全角と判定する。 なんかバッドノウハウチックだけどしょうが無い。。 【iOS】Google TTSでText To Speechを実装する - The jonki NSStringの全角/半角バリデーションチェック - Over&Out その後

bundleに入っているファイルのパスをファイル名から取得する方法

iOS

下記参照。 iphone - Read Text file Programmatically using Objective-C - Stack Overflow

ファイル名の拡張子とそれ以外の部分を分ける方法

iOS

下記参照。 objective c - pathForResource? without using extension (Iphone) - Stack Overflow

NSURLConnectionはdelegateをretainする

iOS

NSURLConnectionはdelegateをretainする。 HTTPレスポンスが返ってきたタイミングでリリースする。 よって、delegate:selfとか渡していて、NSURLConnectionオブジェクトを生成したけどHTTPリクエストは送信しませんでした、という場合メモリリークする。 del…

Unrecognized Selector Sent to Instanceエラーがでる

iOS

Unrecognized Selector Sent to Instanceが出るが、変数の型は確かにこのメソッドを持ってる。なぜ。。と思ったら、変数の型と変数に入っているオブジェクトの型が違っていた。 具体的には以下のような感じ。 NSString *str = strObj; // strObjにはNSNumber…

ARC使ってるのにBAD_ACCESS

iOS

ARCなのにプロパティにアクセスするとBAD_ACCESSが出て、なぜ!?と思っていたら、 プロパティが誤ってassignになっていた。。 こんなミスをするとは、反省しきり。

NSDateFormatterでフォーマットした時刻がおかしい

iOS

LocaleをUSにすると直る。詳細は下記記事参照。 日本語環境では、NSDateFormatterでフォーマットした日付がおかしい - 24/7 twenty-four seven

NSRegularExpression

iOS

NSRegularExpressionに正規表現を渡す時に、文字クラス内に「-」をいれても-にマッチしてくれなくて困った。 NSRegularExpression *regexp = [NSRegularExpression regularExpressionWithPattern:@"[a-z+-_]" options:NSRegularExpressionCaseInsensitive er…

NSDateFormatterのインスタンス生成は高コスト

iOS

NSDateFormatterのインスタンスを1600回生成すると、iPhone5で4.6秒かかった。 100回以上生成する見込みならキャッシュした方がいいかも。 しかしXCodeのプロファイラはすごく使いやすいな。パフォチューがはかどります。 performance - iOS: Method 25 time…

Galaxy S2にPCからファイルを転送する

手順は以下。 ・設定→その他→USBユーティリティ→PCにストレージを接続 を選択 ・USBケーブルをつなぐ ・Android上のボタンをタップ

実機でデバッグしようとするとエラーが出る

iOS

Xcodeから実機にアプリをインストールして動かそうとすると↓のエラーメッセージが表示された。 Could not change executable permissions on the application. これは実機にある同じIdentifierのアプリを削除すれば直る。 参考:xcode - Rewrite iOS app fro…

UINavigationControllerにViewControllerをpushすると上の方に20pixelのすきまができる

iOS

下記コードで解決出来る。 - (void)viewDidLoad { CGRect frame = navController.view.frame; frame.origin.y = 0.0; navController.view.frame = frame; } 参考:Space above Navigation Controller Navigation Bar | Apple Support Communities

Exception: EXC_BREAKPOINT (code=EXC_I386_BPT, subcode=0x0))

iOS

以下のようなエラーが出た。 Exception: EXC_BREAKPOINT (code=EXC_I386_BPT, subcode=0x0)) dyld: lazy symbol binding failed: Symbol not found: _objc_setProperty_nonatomic これはStaticライブラリとアプリ側のBase SDKとiOS Deployment Targetの設定…