タグ

iOSに関するhelldeathのブックマーク (62)

  • iOSアプリ開発で例外の発生した場所を特定する | DevelopersIO

    iOSアプリを開発していて、例外が発生してアプリがクラッシュしてしまうことがしばしばあります。 Xcodeでは、クラッシュ時に得られる情報が少ないので、原因究明に時間がかかってしまいます。 そんなときは、「NSSetUncaughtExceptionHandler」を使用すると便利です。 まず、試しに、よくある例外をわざと発生させてみます。 - (void)viewDidLoad { [super viewDidLoad]; // ここで、わざと例外を発生させてみます。 [[NSArray array] objectAtIndex:0]; } 実行すると以下のようになります。 「UIApplicationMain」で止まってしまって、状況がよくわかりません。 「NSRangeException」が発生したことくらいはわかりますが、もう少し情報が欲しいところです。 そこで、「NSSetUnc

    helldeath
    helldeath 2012/10/02
    あーこれはぜひ覚えておこう。明日から使える
  • 正規表現 - KuuZooBook

    iphoneで正規表現を使う機会があったのでまとめ。 まず正規表現って何?って方はこちら objcで正規表現を使って特定の文字列を取得するには二つのアプローチがある模様。 NSStringに対してrangeOfStringを使う。 NSRegularExpressionにNSStringのオブジェクトを渡す。 NSStringに対してrangeOfStringを使う。 rangeOFStringの引数optionsにNSRegularExpressionSearchを渡してやると正規表現を使ってNSRangeを得る事ができるようになります。rangeOfStringを使って正規表現にマッチする範囲をmatchに渡し、後で使うときはmatchの範囲の文をsubstringWithRangeで得ています。 NSString *string = @"東京は寒い。カナダはもっと寒い。"; NSRa

    正規表現 - KuuZooBook
    helldeath
    helldeath 2012/08/03
    Objective-Cで正規表現にマッチした文字を取得する
  • タップとUIButton - OKWAVE

    質問文中の「イベント」は、「アクション(Action)」のことでしょうか? UIGestureRecognizerをUIViewに組みこむと、ほかのタッチイベントが無効になります。それを避けるには、UIGestureRecognizerのプロパティ「cancelsTouchesInView」をNOにします。 タップジェスチャーだと、ジェスチャーに必要な画面の面積は限定的ですが、スワイプやローテートといったジェスチャーは、大きな面積が必要です。ボタンやスライダーといったビューを避けつつ、ジェスチャーするのは、至難の業でしょう。なので、UIGestureRecognizerを組みこむと、個々のビューのタッチイベントの受け取りを、(デフォルトでは)無効にすることにしているのだと、推論できます。

    タップとUIButton - OKWAVE
    helldeath
    helldeath 2012/07/26
    タップジェスチャーを設定しているとUIViewにイベントが受け取らない。ジェスチャーのcancelsTouchesInView=NO;に設定する
  • はっそうし Core Dataで全データを素早く削除するには

    Core Dataで全データを削除する方法を検索すると、安全な方法として、一データごとに削除する方法が紹介されている。安全だろうけどこれ確実に遅いよね。Store TypeとしてSQLiteを使用している場合、ファイルを削除する方法も見つかる。削除している時に、PersistentStoreに同時アクセスが発生したら確実に落ちるよな。 楽観的な排他処理が前提ではあるが、削除処理はmain threadで行うこととすればファイル削除でのCore Dataの全データ削除が実現できる。ApplicationDelegateクラスのメソッドが前提のコードは以下になる。 - (void)deleteStore { if ([NSThread isMainThread]) { // sqliteファイルのURL取得 NSURL *storeURL = [[self applicationDocumen

    helldeath
    helldeath 2012/07/10
    該当CoreDataのsqliteファイルを削除して再生成するのが早い
  • CoreData 全レコード削除

    突然の Core Data を。 - (void)resetAllData:(NSManagedObjectContext *)context { NSUInteger count = 0; for (NSEntityDescription *entity in [[[context persistentStoreCoordinator] managedObjectModel] entities]) { NSFetchRequest *request = [[NSFetchRequest alloc] init]; [request setEntity:[NSEntityDescription entityForName:[entity name] inManagedObjectContext:context]]; NSArray *temp = [context executeFetch

    helldeath
    helldeath 2012/07/10
    全行フェッチして1レコードずつdeleteを実施
  • MKReverseGeocoderでより精度の高い住所情報はMKPlacemark.addressDictionaryにあった!

    MKReverseGeocoderでより精度の高い住所情報はMKPlacemark.addressDictionaryにあった! 先日MKReverseGeocoderの精度は決して高くなさそうだと書いたが、それは間違いだった。 琴線探査: iPhoneアプリでのより高精度な逆ジオコーディングを求めて・・・ より精度の高い住所情報は、MKPlacemark.addressDictionary.FormattedAddressLinesから取得できるとわかった。 /** * * MKPlacemark.addressDictionaryから取得するFormattedAddressLinesを * 一行の文字列として返す * */ - (NSString *)getFormattedAddressLineFromPlacemark:(MKPlacemark *)pm { //最終的な住所文字列

    helldeath
    helldeath 2012/07/05
    CLGeocoder,CLLocationで逆ジオコーディング。FormattedAddressLinesの方が詳細な情報が取得できる
  • iOS5 での地名の取得 CLGeocoder | K1278 ブログ (テスト中)

    helldeath
    helldeath 2012/07/05
    位置情報はCLLocationで
  • iOS5のUIImagePickerControllerQualityTypeと解像度のまとめ - bricklifeのはてなブログ

    iPhone 4Sを手に入れたので、UIImagePickerController で動画を撮るときの解像度やフレームレートなどをまとめ直してみた。 iOS 5 で使える UIImagePickerControllerQualityType (enum順) UIImagePickerControllerQualityTypeHigh UIImagePickerControllerQualityTypeMedium UIImagePickerControllerQualityTypeLow UIImagePickerControllerQualityType640x480 (iOS 4から) UIImagePickerControllerQualityTypeIFrame1280x720 (iOS 5から) UIImagePickerControllerQualityTypeIFrame96

    iOS5のUIImagePickerControllerQualityTypeと解像度のまとめ - bricklifeのはてなブログ
    helldeath
    helldeath 2012/07/04
    アプリでムービー撮影時の画質設定
  • iOS 開発で、EXC_BAD_ACCESS とさよならするための6つのルール – Zero4Racer PRO Developer's Blog

    2012/3/22 いくつか修正、加筆しました。 追記もご覧下さい:iOS 開発で、EXC_BAD_ACCESS とさよならするための6つのルール [追記] カプセル化について « Zero4Racer PRO Developer’s Blog 対象がiOS4以上の場合は、ARCを使用するのもオススメです。iOS 5 公開記念! Objective-Cのメモリ管理の革命、 ARC 超入門(サンプルはgitHubに公開) « Zero4Racer PRO Developer’s Blog をご覧下さい。 @Awaresoft さんのこの記事が、ほとんどすべての疑問に答えています。とてもよい記事なので合わせてご覧下さい。プロパティに対応するインスタンス変数の命名規則について – Awaresoft iOS プログラミングでのメモリ管理の基 iPhone開発で主に使用される言語は、Object

    helldeath
    helldeath 2012/07/03
    こちらも合わせてEXC_BAD_ACCESSになりたくないので。
  • EXC_BAD_ACCESSが出てもうろたえないために - BAD_ACCESS

    開発しているとどうしてもぶち当たる壁がデバッグ。その中でもEXC_BAD_ACCESSが出るとお手上げ状態。 EXC_BAD_ACCESSは解放済みのオブジェクトに対してアクセスしようとすると発生するエラー。 余分に解放してしまったのはどのオブジェクトなのかを探し当てないといけない。ということでメモ。 通常、EXC_BAD_ACCESSにメッコをつけるためにはNSZombieEnabledを有効にする手段が最も良く知られている。 Xcode4では若干、勝手がかわっているようなので、未確認の方は以下のサイトも参考に。 iPhoneアプリ開発 EXC_BAD_ACCESS対策方法 | はるかなる熊 objective c - How do I set up NSZombieEnabled in Xcode 4? - Stack Overflow まず、自分のプロジェクトの「Edit Schem

    EXC_BAD_ACCESSが出てもうろたえないために - BAD_ACCESS
    helldeath
    helldeath 2012/07/03
    Xcode4.3でも同じ設定でまいりますよ。例外発生時に情報を取得したいので
  • [XCODE] CoreDataを用いたデータ管理を行う方法。準備編。 - YoheiM .NET

    CoreDataを用いたデータ管理を行う方法を今日は書きたいと思います。 色々と書いていたら長くなったので、まずはCoreDataの準備について記載したいと思います。 CoreDataとは CoreDataとは、iPhoneアプリでデータを永続的に保存できる仕組みの一つです。データを扱う機能が豊富に そろっているようで、便利なフレームワークのようです。詳細は、以下を参照してみて下さい。 iOS Core Data チュートリアル この記事も含めて、以下のような分類でCoreDataの使い方をブログに書いています。 ご参考になれば幸いです(((o(*゚▽゚*)o))) - CoreDataを用いてデータ管理を行う方法。準備編。 - CoreDataを用いてデータ管理を行う方法。登録編!! - CoreDataを用いてデータ管理を行う方法。更新・削除編!!! - CoreDataを用いてデータ

    [XCODE] CoreDataを用いたデータ管理を行う方法。準備編。 - YoheiM .NET
    helldeath
    helldeath 2012/06/25
    CoreDataの使い方がわかりやすそう
  • UITableViewCell のカスタマイズ - アカベコマイリ

    iPhone アプリで多用される UITableViewCell のカスタマイズにチャレンジしてみる。セルを作成するにあたり可変長で適度な複雑さを持ったデータが欲しいのでサンプルには簡単な Twitter のタイムライン ビューアーを選んでみた。 プロジェクトの準備 はじめにプロジェクトを作成。テンプレートは Navigation based Application にした。プロジェクト名は TestTwitterClient としておく。既定の RootViewController は TimelineViewController にリネーム。今回のサンプルではこの画面に Twitter のタイムラインを表示する。 次に Twitter API から得られたタイムラインの JSON を解析するために JSON framwwork というライブラリを用意する。ライセンスは修正 BSD。 s

    helldeath
    helldeath 2012/06/22
    つかう
  • カスタマイズしたUITableViewCellから自前のイベントを受け取る : iOS dev storage

    2012年02月02日12:42 カスタマイズしたUITableViewCellから自前のイベントを受け取る カテゴリ開発cocoa melodybox Comment(0)Trackback(0) 今回はカスタマイズしたUITableViewCell(サンプルとしてUISwitchを加えたもの)をUITableViewに追加した場合の、セル上にあるスイッチが切り替わった事をTableView側で感知する方法をご紹介しようと思います。 まずこのようなカスタマイズUITableViewCellを作ります。カスタマイズしたUITableViewクラスの名称は、「SwitchCell」とします。SwitchCellクラスのヘッダファイルは次のようになります。 @protocol SwitchCellDelegate // スイッチの切換えを通知する -(void) tableView:(UITa

    カスタマイズしたUITableViewCellから自前のイベントを受け取る : iOS dev storage
    helldeath
    helldeath 2012/06/22
    つかう
  • iOSアプリからフォトライブラリに触われるAssetsLibraryについて | Technology-Gym

    Assets Library Framework Reference について. アプリ内で保存する画像をアプリ独自のdocumentフォルダに保存して使うのではなくて、フォトライブラリに保存して利用できるようできないかなと思い、 フォトライブラリに関するフレームワークのAssets Libraryについて調べたことのメモ書きです。 (検証はしてないので、正確性は保証されません) AssetsLibraryの概要 memo: Assets Library Framework クラスの概要。 AppleのAssets Library Framework Referenceと一緒に見る AssetsLibraryについて (iOS5対応版) このスライドがよくまとまってる。 iOS4とiOS5で同じ要素でも結構違う所がある。 AssetsLibraryについて私が知っている二、三の事柄 – m

    helldeath
    helldeath 2012/06/21
    各種資料へのリンクもたくさんあり便利
  • GHUnitで単体テストをしてみよう - mixi engineer blog

    初めまして。プログラマのショウといいます。 現在、mixiの公式iPhoneアプリを担当しています。 今回は、iPhoneアプリ開発におけるGHUnitを用いた単体テストについて紹介したいと思います。 ★ テストとは 題に入る前に少しだけ、テストという概念について整理してみましょう。 ソフトウェアを開発する上での「テスト」という言葉は、「コンピュータのプログラムを実行し、正しく動作するかを確認する作業のこと」を指します。 そしてこの「正しく動作するかを確認する方法」として主に以下の2通りがあります。 ・ ホワイトボックステスト ・ ブラックボックステスト ホワイトボックステストとは、「命令網羅」「分岐網羅」「条件網羅」などの方式を用いて、プログラム内部の動作がプログラマの意図通りとなっているかを確認するものとなります。 これに対してブラックボックステストとは、プログラム内部に関係なく、外

    GHUnitで単体テストをしてみよう - mixi engineer blog
    helldeath
    helldeath 2012/06/20
    段階をおってインストールしており、分かりやすい
  • GHAsyncTestCaseを使ってASIHTTPRequestの非同期通信のテストをする | @blog.justoneplanet.info

    ドキュメントが分かりにくかったので自分で書いてみた。 ■テスト対象のクラス ASIHTTPRequestを使った普通のクラス。 MyHTTP.h #import <Foundation/Foundation.h> #import "MyHTTPDelegate.h" @class ASIHTTPRequest; @class MyHTTPDelegate; @interface MyHTTP : NSObject { id <MyHTTPDelegate> delegate; } @property (nonatomic, retain) id delegate; - (void)loadData; - (void)requestFinished:(ASIHTTPRequest *)request; - (void)requestFailed:(ASIHTTPRequest *)reque

    helldeath
    helldeath 2012/06/20
    日本語のサンプルなので参考になります
  • 【予告】WWDC開催記念で『エキスパートObjective-Cプログラミング』を40%オフで提供します!(6/12-16) - 達人出版会日記

    『エキスパートObjective-Cプログラミング ― iOS/OS Xのメモリ管理とマルチスレッド』 (坂一樹著 達人出版会発行 PDF/EPUB) 先日、著者の坂さんより、WWDC2012開催記念で『エキスパートObjective-Cプログラミング』のセールをしましょう! とご連絡をいただきました。 というわけで、日時間の6月12日の0時ごろから6月16日が終わるごろまで、『エキスパートObjective-Cプログラミング ― iOS/OS Xのメモリ管理とマルチスレッド』を、通常価格1,600円(税込)のところを40%オフの960円で提供いたします! 週末にどうしてもObjective-Cをやらないと……という方はもちろん今すぐご購入されても構いませんが、そうでない方はこの機会をぜひご利用ください。よろしくお願いいたします。

    【予告】WWDC開催記念で『エキスパートObjective-Cプログラミング』を40%オフで提供します!(6/12-16) - 達人出版会日記
    helldeath
    helldeath 2012/06/08
    6/12~16まで。覚えていられるかな・・・
  • Provisioning profile更新時にCode Sign errorでハマる:iPhoneアプリ開発雑記帳

    開発用のProvisioning Profileは約3ヶ月と短期間で期限切れを迎え、期限切れ後はProvisioning Portalから更新を行い、更新されたプロファイルを再設定することで問題なく使えるはずです。 ところが、突然Code Sign error: Provisioning profile ‘(profile-id)’ can’t be found. というエラーでビルドに失敗してしまいました。 当然、clean後にbuildしたのですが、どうやらどこかに古いprofile-idが残ったままになっている模様です。 xcodeprojファイルを開いて直接修正するという方法も考えましたが、ちょっと強引すぎるのでXcodeの画面から以下の手順を試したところ、うまく実機にビルドすることができました。 まず、XcodeのProvisioning profile設定を行うためにビルド設定

    Provisioning profile更新時にCode Sign errorでハマる:iPhoneアプリ開発雑記帳
    helldeath
    helldeath 2012/06/08
    まさにこれでした!私の場合はさらに、期限切れだったり警告がでていたProvisioning profileを実機・Organizerの両方から削除する必要がありました。
  • Mac10.7.3 Xcode4.3.2 rvm Ruby1.9.3-p194 環境構築 | Act as Professional - hiroki.jp by HIROCASTER

    Xcodeとrvmと最新のrubyではめられた感じ満載の@HIROCASTERでございませう。 手元のXcodeがすごく古かったので、刷新しようとしたらあれやこれや作業が必要になった。 最新のXcodeだけでは、最新のRubyをコンパイルできないし、Ruby1.9.3-p194からSSL証明書をちゃんとチェックするので、その設定してあげないとcurlでgem取ってこれないので、なんもできないとかいろいろ同時に問題が起きた。 今日はMacに最新のXcode4.3.2をインストールした状態で、最新のRuby1.9.3-p194を利用できる状態を構築します。 Xcode 4.3.2App Store などから Xcode をインストールする。 4.3.2は /Applications へアプリがインストールされるので起動する。 メニューの Xcode -> Preferences… を起動する。

    Mac10.7.3 Xcode4.3.2 rvm Ruby1.9.3-p194 環境構築 | Act as Professional - hiroki.jp by HIROCASTER
    helldeath
    helldeath 2012/06/08
    古いXcodeが入っていた場合、xcode-select -print-pathで確認して、xcode-select -switchで/Applications/Xcode.app/Contents/Developerに切り替える!
  • GTM HTTP Fetcherを利用した通信方法まとめ - プログラミングノート

    ASIHTTPRequestが開発終了ということで、最近はGoogleが開発しているGTMHTTPFetcherを利用しています。 Best Album、FlickPicsともに利用していますが、シンプルなNSURLConnectionのラッパーなのでとても扱いやすく、ソースもそこまで大きくないので必要に応じて自分で改良することも難しくありません。 Introductionにある程度まとまっているのですが、画像アップロードを開発する際、multipartリクエスト周りでハマったので、これだけ知ってれば十分使えるでしょうというところと合わせてまとめてみました。 特徴 Simple to build; only one source/header file pair is required Simple to use: takes just two lines of code to fetch

    GTM HTTP Fetcherを利用した通信方法まとめ - プログラミングノート