タグ

objective-cに関するyu3ho7のブックマーク (41)

  • iOSのUIWebViewでHTTPステータスをチェックする - Qiita

    #import <Foundation/Foundation.h> @interface MyURLProtocol : NSURLProtocol @end #import "MyURLProtocol.h" # ループを防ぐためにHTTPリクエストヘッダーに追加する static NSString *const MyWebViewResponseCheckHeader = @"X-iOS-WebView-Response-Check"; @interface MyURLProtocol () @property (strong, nonatomic, readwrite) NSURLRequest *request; @end @implementation MyURLProtocol /*! クラスロード時に、URL Loading Systemに登録してしまう UIWebView/

    iOSのUIWebViewでHTTPステータスをチェックする - Qiita
  • iOS8からのプッシュ通知:選択肢付きのお知らせ機能 - Qiita

    iOS8からプッシュ通知でユーザが選択肢を選べるようになりました。 プッシュ通知に選択肢を追加する方法をまとめました。 (記事の内容は一般公開されているiOS8の情報に基づいています。 iOS8に関するスクリーンショットは一般公開されている情報から引用しています。) プッシュ通知での選択肢の作り方 手順 0. プッシュ通知の許可申請 1. プッシュ通知に表示するアクションを生成する 2. 生成したアクションをカテゴリに登録する 3. カテゴリをセッティングに登録する 4. セッティングをプッシュ通知に登録する プッシュ通知の許可申請 プッシュ通知を使用するにはユーザに許可画面を提示して、プッシュ通知を許可してもらう必要があります。 プッシュ通知を使用する多くのアプリがアプリの初回起動時に許可画面を表示しています。 しかし、それではプッシュ通知が何に使われるのか分からずユーザがメリットを感

    iOS8からのプッシュ通知:選択肢付きのお知らせ機能 - Qiita
  • Objective-C でシングルトンパターン | Sun Limited Mt.

    Objective-C でシングルトンパターンのクラスを作成するメモです。 シングルトンパターンとは、クラスのインスタンスがひとつしか生成されないことを保証するデザインパターンです。NSUserDefaults などがシングルトンなクラスです。 シングルトンなクラスを作成するときのポイントです。 静的インスタンスを生成して、ひとつだけ作成したインスタンスを入れておく アップルが推奨しているクラスファクトリーメソッド名(sharedInstance や sharedManager) を使用して、インスタンス未生成時のみインスタンスを生成する インスタンスがひとつしか生成されないことを保証するために [[Hoge alloc] init] とされた場合の対策をしておく retain, retainCount, copyWithZone, release, autorelease をオーバライド

  • iOS8向けアプリ開発時の注意点

    Android, iPhone等のスマートフォン向けアプリ開発などの話題を中心に、時事ネタなどを気の向くままに書いています。 先日、iOS8のGM seedが公開されました。iOS8の正式リリースも間近ですね。 ところで、iOS8対策は済んでいますか? もし対策が済んでいたとしても、この下にある「UITextView、UITextFieldで編集メニューの表示がおかしい」だけは読んでおく事をお勧めします。 全てのUITextView、UITextFieldを使用したアプリが関係する問題です。 私自身、iOS8はベータ版の時から見ていたので、いくつか不具合が出る箇所を発見していました。 そこで、まだGMの段階ですが、備忘録を兼ねてiOS8対策に関して情報共有したいと思います。 間違いがありましたならばご指摘ください。 今回記載するのは以下の内容です。 他にもiOS8ではDeprecatedに

  • iOS でプロパティリストを使ったデータの保存方法 - A Day In The Life

    iOS でオブジェクトをシリアライズする方法に続き今回もデータ永続化方法の紹介です。 iOS にはプロパティリストと呼ばれるファイル形式があります。プロパティリストは NSArray や NSDictionary クラスを使って簡単にデータの読み書きができます。 ここではプロパティリストを使った基的なデータの保存方法から自作クラスのオブジェクトを保存する方法まで説明します。 プロパティリストって何? プロパティリストは Mac OS X や iOS で利用することができるデータ永続化のためのファイル形式です。Mac OS X ではもっぱらユーザの情報を設定するのに使われる事が多く Windows のレジストリのような使われ方をしています。iOS では Info.plist のようにアプリの情報を設定するのに使われることが多いです。 またプロパティリストはファイルの拡張子が .plist

    iOS でプロパティリストを使ったデータの保存方法 - A Day In The Life
  • iOS でデータを永続化する方法 - A Day In The Life

    iOS データ設計入門の続きです。前回は iOS であつかうデータ全般について書きましたが今回はデータをフラッシュドライブに保存する方法について説明します。 データの永続化って何? メモリにあるデータはアプリを終了すると消えてしまいます。 アプリを終了しても残しておきたいデータはフラッシュドライブに保存する必要があります。メモリにあるフラッシュドライブに保存することをデータの永続化といいます。永続化されたデータはフラッシュドライブが壊れない限り永続的に保存され残ります。以降 iOS でフラッシュドライブがどのように管理されているのかと、データを永続化するのにどのような方法があるのかについて説明していきます。 フラッシュドライブを構成する3つの領域 データを永続化する方法を説明する前に iOS でフラッシュドライブがどのように管理されているか見ていきましょう。 iOS ではフラッシュドライブ

    iOS でデータを永続化する方法 - A Day In The Life
    yu3ho7
    yu3ho7 2014/09/05
    データ永続化 アプリディレクトリ構成
  • iOS 7時代のUDID(UUID)取得方法 - 強火で進め

    iOS 6の頃に「そろそろ提供辞めるので対策しててよ」って言われてたUDIDなどがiOS 7からは遂に使用できなく(そのまま使用すると問題が出る値を返す)様に成りました。 色々と変わっているので情報まとめておきます。 uniqueIdentifier 以下の様な記述で取得されていたいわゆるUDIDを取得する為のメソッドです。 [[UIDevice UIDevicecurrentDevice] uniqueIdentifier]このメソッドはiOS 6の頃から非推奨に成っていました。現在は審査が通らなく成りました。iOS 7では取得する度に異なる値が返される様に成ったみたいです。また、先頭部分は常にFFFFFFFFになるみたいです。 Twitterで「リリースノートに FFFFFFFF + identifierForVendor が返されると書かれている」と教えて貰いました。 iOS 7 R

    iOS 7時代のUDID(UUID)取得方法 - 強火で進め
  • iOSデバイスの準備

    『初めてのiOSプログラミング 第2版』を読み始めて、署名証明書やプロビジョニングプロファイルの取得手順は他のやサイトなどでもよく見られますが、それらがどのような意味を持ち、どう関連しているのかの説明はあまり見かけないのでまとめます。 ●開発したiOSアプリケーションの制限 開発したアプリケーションをApp Storeで配布/販売するには、Appleの認定を受けなければなりません。 これは簡単にクラッシュしたり、大きなバグが露見するようなアプリケーションを排除し、良質のアプリケーションだけをユーザに提供するためです。 またApp Storeを介す以前の開発中の段階であっても、実デバイスへのアプリケーションのインストールは制限されており、iOS Developer Programに参加してデジタルIDを取得する必要があります。 ここで言うデジタルIDは、署名証明書やプロビジョニングプロファ

  • iOS 6時代のUUID事情

    今日リリースされたiOS 6, マップやPassbookが目立った新機能だが、UDID/UUID周りについても重要な変更が行われている。 これらについてまとめておく。 UDIDへのアクセスは基的にNG. UDIDへのアクセスはiOS 5から非推奨とされている。 公式リファレンスでは、CFUUIDRefを生成し、アプリ内で保存するなどの方法をこれまでには紹介されていたが、iOS 6ではフレームワーク側でUDIDにかわるID(どれもUUID)を用意している。 + [NSUUID UUID] 従来のCFUUIDRefのObjective-C版と考えていいだろう。クラス・メソッドの+UUID を呼び出せば、UUIDが新規に生成される。 NSString、バイト列に変換するインスタンス・メソッドも用意されている。 ただし、CFUUIDRefとToll-Free bridgeではない。 UIDevi

    iOS 6時代のUUID事情
  • iOS7で追跡型広告識別子を取得する - [開発] - Advertising Identifier

    iOS 7でサクッとAdvertising Identifierの取得確認をしてみました。 未だにUIDIDを取得して使おうとしている人はいないだろうと思いますが、おさらいしておくとUIDIDの取得はiOS5で非推奨となり、iOS6から無効となって広告用途のIDとしてAdvertising Identifier(追跡型広告識別子)が追加されました。 iOS6以降ではこの識別子を利用しなくてはいけません。 基的にiOS6からiOS 7に変わって大きな変化はないのですが、iOS 7で今回取得してみました。 注意点 注意点として、識別子の取得制限とリセットがあります。 取得制限は、設定の「追跡型広告を制限」の状態を制限をチェックしてから利用してね、となっています。 しかし、ユーザがこの制限を有効にしていても識別子の取得は可能です。その用途としてはデバックやセキュリティ、不正行為の検出のためだそ

    iOS7で追跡型広告識別子を取得する - [開発] - Advertising Identifier
  • [Objective-C] NSURLConnectionで非同期通信(デリゲート) - Qiita

    NSURLConnectionには同期処理と非同期処理があります。 同期的な処理については以前書いた記事内で使っている(sendSynchronousRequest:returningResponse:error:メソッド)のでそちらを見ていただくとして、今回はデリゲートを使った非同期処理についてのメモです。 NSURLConnectionDataDelegateに準拠する 非同期処理の場合は、NSURLConnectionDataDelegateプロトコロに準拠して、適切にメソッドを実装します。 実装すべきメソッドは以下のもの。 実装するデリゲートメソッド - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response メソッド 説明

    [Objective-C] NSURLConnectionで非同期通信(デリゲート) - Qiita
  • ネットワークにアクセスしていることをユーザに提示する簡単な方法 - iPhoneアプリケーション開発

    今、ネットワークにアクセスしてますよーということをユーザに簡単に提示する方法。 ネットワーク上のデータをロードしてるようなときには、Activity Indicator(ぐるぐる回ってるやつね)を使うのが一般的ですが、自前で準備しなくてもシステム側が用意してくれているのを簡単に使う方法があります。iPhoneでMailアプリやSafariなどで、一番上のステータスバーに現れる小さいActivity Indicatorがそれです。 使い方は簡単。コードのどこかで、 [UIApplication sharedApplication].networkActivityIndicatorVisible = YES; を実行すれば良い! ネットワークへのアクセスが始まると自然にActivity Indicatorが表示されます。 消したいときは当然 [UIApplication sharedAppli

  • ifndef

    円周率のような定数は広く使われるので、ヘッダファイルに含めたいところです。そのヘッダファイルをインクルードするだけでPIを定義できます。 ところが、1つのプログラムで、2回以上同じ宣言をしてはいけません。すると、そのヘッダファイルは1つのプログラムで1回しかインクルードできません。 補足 一般に1つのプログラムは、複数のファイル(*.cppファイル、*.hファイル)で構成されます。あるcppファイルが、ある定義を持つヘッダファイルをインクルードし、別のcppファイルが同じヘッダファイルをインクルードすると、同じ宣言を2回していることになってしまいます。 そこで、#ifndefと#endifを使います。これらは、擬似命令と呼ばれるプリプロセッサによって処理される命令です。プリプロセッサとはコンパイルの前に実行されるコマンドのことです。プリプロセッサの実行は自動的に行われるので、通常、プログラ

  • 【Objective-C】独自のユーザーエージェントにする方法

    Webviewのnavigator.userAgentを独自のユーザーエージェントにする方法と、その他諸注意(Googel Analytics etc..)Objective-CXcodeiOS HTMLで作ったスマホページのレイアウトを、特定のWebviewから見られているときだけ変更したいと思い、アプリ側のWebViewに独自のUAを設定し、jsでユーザーエージェント取得・判定・表示の切り分けを行いました。試した中で気づいたことをメモ。 ■諸注意 UAの設定方法が、Googel Analytics(以下GA)とwebviewで表示されるページの見え方に影響する ■完全オリジナルのUAを設定した場合 ・GAではアクセスをユーザーエージェント毎に分けて見られるので、アプリからのアクセスのみを簡単に把握できる。 ・Webviewで開いたページ側がレイアウトをUAで判断して切り分けている場合に

    【Objective-C】独自のユーザーエージェントにする方法
  • スクロール付きタブバー "InfiniTabBar" - その後のその後

    先日の OGActionChooser に引き続き、オープンソースのUIコンポーネントの紹介です。 ソーシャルゲーム系のアプリでちょくちょく見かけるのが、スクロールするタブバー。 あまりわかりやすいUIとはいえないので、ネイティブ実装する場合にこのUIを採用するケースはあまりないのですが、メニューの多いアプリのUIの検討の場にはちょくちょく出てきます。 そういう場合に InfiniTabBar を使えば、サクッとスクロール付きタブバーをつくって試すことができます。 基的な使い方 InfiniTabBar のAPIは、UITabBarとほぼ同様の API となっているため、使い方が非常に簡単です。以下が基的な実装手順です。 1. ソースコードをダウンロード https://github.com/iosdeveloper/InfiniTabBar 2. ヘッダインポート #import "

    スクロール付きタブバー "InfiniTabBar" - その後のその後
  • http://buono.in/?p=1327

    http://buono.in/?p=1327
  • GitHub - murakami/workbook at 6968bd380158e3829bb5b99cd4b8e71bf3cdf9b7

    yu3ho7
    yu3ho7 2014/08/08
    viewコンテナ参考
  • 自前コンテナでaddChildViewController:するときdidMoveToParentViewController:はやはり使うべき - Qiita

    //自前コンテナ(self)にchildViewControllerを追加 [self addChildViewController:childViewController]; //その後didMoveToParentViewControllerを実行しなければいけない [childViewController didMoveToParentViewController:self]; この追加(add)したあとになぜ完了(didMove)を明示的に知らせないといけないのか謎という感覚。また、これがなくてもこちらの想定通り動くのでずっと疑問だった。 結論としては 自前コンテナでaddChildViewController:を実行した後は、やはり必ずdidMoveToParentViewController:を呼ぶ。これはUIViewController自身が他のコンテナに追加(もしくは削除)

    自前コンテナでaddChildViewController:するときdidMoveToParentViewController:はやはり使うべき - Qiita
  • UIViewController のコンテナ機能

    「12/20 集まれSwift好き!Swift愛好会」での発表資料になります。ContainerViewの概要からサンプルでの活用術・UIのアイデアの探し方の解説を行います。 ★詳細解説(メディア系アプリでよくあるUIを実現した簡易サンプル) http://qiita.com/fumiyasac@github/items/2490990be4c011935368

    UIViewController のコンテナ機能
    yu3ho7
    yu3ho7 2014/08/08
    コンテナ
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
    yu3ho7
    yu3ho7 2014/08/08
    呼び出し順