タグ

2015年12月2日のブックマーク (11件)

  • UIWebViewに独自のUserAgentを設定する - Qiita

    UIWebViewのインスタンスを生成した後にUserAgentの設定をしようとしても反映されません。 実際に使うWebViewを生成する前に設定処理を書きます。 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { //デフォルトのUserAgentを取得するために、サイズゼロのUIWebViewのインスタンスを生成 UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectZero]; //デフォルトのUserAgentを取得 NSString *userAgent = [webView stringByEvaluatingJavaScriptFromStri

    UIWebViewに独自のUserAgentを設定する - Qiita
  • Xcodeでのデバッグ方法 | Cyber Passion for iOS

    昨今の開発環境ではブレークポイント設定や変数値の確認ができるソースレベルデバッガの存在は当たり前です。Xcodeももちろんそれを備えています。 ※ デバッグのために不用意にNSLogを書きまくるのはコードが汚れるのでやめましょう。場合よってはソースレベルデバッガよりNSLogの方が有効な時もあります。それについても後述します。 Runした時に変数とデバッグコンソールが表示されるようにする XcodeのメニューからPreferencesを開きBehaviorsタブを選択してください。 RunningセクションのStartsを選択し、Show debugger withの項目をチェック。Variables & Console Viewを選択してください。こうすると実行した時に自動的にデバッガによる変数とコンソールが表示されます。 ブレークポイントの追加、削除 ソースファイルの行番号をクリックす

    Xcodeでのデバッグ方法 | Cyber Passion for iOS
  • なぜNSStringをプロパティにする際にcopyオプションを選択すべきなのか - Qiita

    さて、NSStringをプロパティとして保持すること、たくさんありますよね。Googleのコーディング規約にもcopyにするよう書いてあります。 自分もそうしていたのですが、なぜそうしなければいけないのかというところまで考えないエンジニア失格状態だったのでちゃんと考えてみました。 さて、そもそもcopyメソッドとは何なのか? copyメソッド copyメソッドはNSObjectで定義されているのですが、copyメソッドを呼ぶとcopyWithZone:メソッドが内部的に呼ばれるようになっています。 APIリファレンスを見るとしっかりと書かれています。 Return Value The object returned by the NSCopying protocol method copyWithZone:,. copyWithZone:メソッドはNSCopyingプロトコルのメソッドです

    なぜNSStringをプロパティにする際にcopyオプションを選択すべきなのか - Qiita
  • Objective-Cのメモリ管理おさらいと解放tips|技術ブログ|北海道札幌市・宮城県仙台市のVR・ゲーム・システム開発 インフィニットループ

    Objective-Cのメモリ管理おさらいと解放tips こんにちは。 iOS/Objective-Cによるアプリ開発では参照カウントによるメモリ管理が必要になります。 今回はiOS/Objective-Cでのメモリ管理の基礎からメモリリークの検知まで解説したいと思います。 参照カウント Objective-Cの全てのオブジェクトはNSObjectを継承しています。 全てのオブジェクトはこのNSObjectのメソッドを通じて参照カウントを扱います。 この参照カウントが、オブジェクトがいくつのオブジェクトから強参照されているかを表し、 0になったオブジェクトは誰からも参照されていないため解放される、という仕組みになっています。 C++に詳しい方はshared_ptrをイメージすると良いでしょう。 より詳細な解説はWikipediaなどが参考になります。 Objective-Cの参照カウント

    Objective-Cのメモリ管理おさらいと解放tips|技術ブログ|北海道札幌市・宮城県仙台市のVR・ゲーム・システム開発 インフィニットループ
  • Objective-C ARC下での強参照、弱参照、循環参照について学ぼう - Qiita

    objcにARCが導入されてから久しいですが、開発者がメモリ管理から解放されたかというと、そうでもないです。strongとweakの導入によって、少し抽象化がなされましたが、オブジェクトのallocate/releaseは意識してプログラムする必要があります。この記事は、ARC環境下での強参照/弱参照/循環参照についてイマイチ理解が及ばないという人のための記事であると同時に、私の個人的なまとめでもあります。 循環参照とは? 循環参照という現象は、私も最初はなかなか理解できませんでした。まず、文字的な定義から言うと、循環参照(retain cycle)とは 「オブジェクト同士がお互いに強い参照を持っているからどちらも解放されない」という現象のことです。 iOSにはObjective-C 2.0のランタイムが実装されていますが、ガベージコレクションは存在しません。理由はよく知らないですがシステ

    Objective-C ARC下での強参照、弱参照、循環参照について学ぼう - Qiita
  • Google、JavaをObjective-Cに変換するJ2ObjCをリリース

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    Google、JavaをObjective-Cに変換するJ2ObjCをリリース
  • ARC のメモリ解放タイミングを調べた - Qiita

    一つの関数内で容量の大きなファイルを読み込み加工する処理を連続して行っていたらメモリが足りなくなった。 ARC ではスコープを外れ(て参照カウンタがゼロになっ)たオブジェクトは、すぐに破棄されると思っていたのでしばらくハマった。 問題のソース(ARC使用) ローカルでもWebでも何でもいいけど、ファイルから無視できない程度の容量のデータの読み込みを繰り返す処理。 - (IBAction)buttonDownWithArc:(id)sender { NSString* path = @".../bigdata.img"; for (int i = 0; i < 10000; i++) { NSData* data = [NSData dataWithContentsOfFile:path]; [NSThread sleepForTimeInterval:0.5]; data = nil; }

    ARC のメモリ解放タイミングを調べた - Qiita
  • Objective-Cのクラス・カテゴリ・クラス拡張の整理 - $ cat /var/log/shin

    以前こんな記事を書きました。 Objective-Cのプロトコルとデリゲートのまとめ - $ cat /var/log/shin 現時点で、こんな場末のブログで唯一ブクマが多い記事なのですが、その文末で、 次は、カテゴリについて勉強したいと思います。 Objective-Cのプロトコルとデリゲートのまとめ - $ cat /var/log/shin なーんて書いてから、はや9ヶ月超。ようやくカテゴリについて調べる機会が来たので、まとめてみます。 座学編 クラスの基 まず初めにクラスの基を整理しておきます。 // ex1.h #import <Foundation/Foundation.h> @interface MyClass1 : NSObject - (void)publicMethod; @end // ex1.m #import "ex1.h" @implementation

    Objective-Cのクラス・カテゴリ・クラス拡張の整理 - $ cat /var/log/shin
  • [Objective-C] クラス拡張と無名カテゴリ - Qiita

    この記事にリンクして、詳細に書いてくれている記事があったので紹介。 クラス拡張とカテゴリの違いの話。 Objective-Cの内部実装にも触れて分かりやすく書いてくれているので、より どういう違いがあるかが分かるかと思います。 AppleのiOS View Controllerプログラミングガイドを読んでいて気づいた。 なんで実装ファイルの方で@interfaceを宣言しているんだろうと思っていたのだけど、これはどうやら クラス拡張 というものらしい。 似たような仕組みに、 カテゴリ がある。 カテゴリは@interface Hoge(anyCategory)で宣言するやつ。 これを無名にしている(つまり@interface Hoge())のが、実装ファイルでよく書かれているやつだ。 なるほど、無名カテゴリだから()なのか。 と腑に落ちたことをTwitterでつぶやいたら、「いや

    [Objective-C] クラス拡張と無名カテゴリ - Qiita
  • クラス拡張とカテゴリの違いの話。 - なるようになるかも

    常々「クラス拡張をカテゴリってゆーな」って思ってるんだけど、「無名カテゴリ」自体は公式の呼称なんだよね。 [Objective-C] クラス拡張と無名カテゴリ - Qiita Objective-Cのクラス・カテゴリ・クラス拡張の整理 - $ cat /var/log/shin クラス拡張は、無名のカテゴリに似ています。が、別物です。一番の違いは、インスタンス変数を宣言できることと、宣言したメソッドはクラス体の(=カテゴリ無しの)@implementationで実装しなければならない点です。 クラス拡張とカテゴリの一番の違いは、「クラス拡張はクラス実装と共にランタイムにロードされることが保証される」ことだと思います。 文脈として、もともとobj-c 2.0以前にはクラス拡張がなく、またメソッドのプロトタイプ宣言が必須だったこともあり、「外部に公開したくないメソッド宣言はプライベートなカテ

    クラス拡張とカテゴリの違いの話。 - なるようになるかも
  • Bundle Identifier、コード署名、プロビジョニングプロファイルの設定 | makotton.com

    ※開発準備、申請まわりの情報をお探しの方はiOSアプリの開発準備と申請の手順まとめを参照ください。 Xcodeでの実機テストやAdHocおよびストア配布用にアーカイブする際、BundleIDやプロビジョニングプロファイルの割り当て、コードサインなど、正しいプロジェクトの設定が必要です。また、他社(他者)から受け取ったプロジェクトファイルを自社の環境に合わせる際にもこのあたりの設定が必須になります。プロジェクト設定や開発環境、その他諸々によっては下記以外の箇所も設定する必要がありますが、最低限やらなければならないもののみ記載しました。なお、証明書やAppID作成前にプロジェクトファイルを作成することもあるかと思いますが、下記はMemberCenterでの作業が済んでいる前提の解説となりますので、適時読み替えてください。 ■前提条件 ・2015/7/6現在の内容 ・MacOS X Ver 10