タグ

xcodeとXcodeに関するDNPPのブックマーク (37)

  • Objective-C のコードレビューチェックリスト - Qiita

    はじめに 稿は Juri Pakaste 氏による Cocoa review checklist (commit fff5703)の翻訳です。他人の Objective-C のコードをレビューするとき注意する点、また普段のコーディングで心がけるべき点についてまとめられています。 なお、原文のタイトルは Cocoa review checklist となっていますが、内容が Cocoa に限らない範囲のトピックをカバーしているため、稿のタイトルは「Objective-C の〜」としました。 誤訳の指摘や例の補足を歓迎します。 コードの見た目とコード以外の問題 不要な #import や @class 宣言を消す #import をソートする .m ファイルの中では、対応する .h ファイルの #import を最初の行に書く。空行をはさんで、ソートされた他の #import を書く。 X

    Objective-C のコードレビューチェックリスト - Qiita
  • lipo を使って簡単に Universal Binary を作成する方法

    iOS 向けのライブラリやフレームワークは、よく static library (.aファイル) の形式で配布されています。これは iOS がユーザーが作成した dynamic library (.dylibファイル) や framework バンドルをサポートしていないからなのですが、ときどきこの static library がシミュレーターとデバイス両方で使える形式、いわゆる Universal Binary になっていない場合があります。 たとえばこんな感じですね。 この状態でビルドを行うと、シミュレーター向けビルドを行えばデバイス用のバイナリが、デバイス向けビルドを行えばシミュレーター用のバイナリが、それぞれ対応していないアーキテクチャであると警告を出してしまいます。警告ですからコンパイルは通るのですが、私は几帳面で気になってしまうので、これを解消したいと考えます。 ■lipoの

    lipo を使って簡単に Universal Binary を作成する方法
  • OCMockでテストを簡単に書く方法について

    プログラミング (iOS, JavaScript, Jenkins, Sikuli) とMaciPhoneなどの話題が中心のブログ OCMockはXcode標準のテスト環境でも利用可能なモックライブラリです。 OCMockを利用すると他のクラス実装に依存しないようなテストを簡単に書くことができるようになります。 そこで、記事ではOCMockを導入して、プロジェクトに必要な設定を行う方法とOCMockの簡単な利用法について紹介します。なお、利用環境はOS X 10.6.8, Xcode 4.2, OCMock 2.0.1です。 OCMockの簡単な利用法 まずはOCMockの簡単な利用法について少しだけ紹介します。 概要についてはFeatures - OCMockがより詳しいです。 stub テストで未実装なクラスや外部サーバに依存するようなクラスを利用しなければならず、 とりあえずそれ

    OCMockでテストを簡単に書く方法について
  • AFIncrementalStoreの紹介(発表メモ)

    gistfile1.md AFIncrementalStoreの紹介(発表メモ) 発表者: @hedjirog 日時: 2013.03.02 場所: iOS部 @下北沢オープンソースCafe テーマ: AFNetworking/AFIncrementalStore (※発表時:0.3.2) 発表の流れ AFIncrementalStoreを利用すると何ができるか AFIncrementalStoreとは何か NSIncrementalStoreとは何か AFIncrementalStoreは何をしているか AFIncrementalStoreはどのように利用するか その他 サンプルプロジェクト cloneの方法 $ git clone --recursive git://github.com/AFNetworking/AFIncrementalStore.git $ open AFIncr

    AFIncrementalStoreの紹介(発表メモ)
    DNPP
    DNPP 2013/03/04
  • Code injectiontool

    3. How to Use 1. pkgをDLしてインストール 2. Injection Plugin.appからFile->Install Plugin 3. Xcodeを再起動 4. Product->Patch Project for Injection 5. 実行中にソースを書き換えて⌘= 13年3月2日土曜日 4. GoodPoint • 実機でも動く • GUIでパラメータを調節できる • AppCodeにも対応 今回はXcode4.6でのみ確認しています 13年3月2日土曜日

    Code injectiontool
    DNPP
    DNPP 2013/03/04
  • iPhoneのデバッグハック

    5. backtrace()の使い方//スタックトレースの出力[mstrappendString:@"Stack:"]; void* callstack[128];inti, frames = backtrace(callstack, 128); char** strs = backtrace_symbols(callstack, frames); for (i = 0; i < frames; ++i) { [mstrappendFormat:@"%s",strs[i]]; } 7. 出力例 Signal:10 Stack: 0 ibisMail 0x0006989d dump + 64 1 ibisMail 0x00069b4b signalHandler + 46 2 libSystem.B.dylib 0x31dcd60b _sigtr

    iPhoneのデバッグハック
    DNPP
    DNPP 2013/02/10
  • Xcodeプロジェクト内のクラスの依存関係を図示する - Qiita

    他人から引き継いだプロジェクトの大まかな全体設計を把握したい場合、規模の大きいライブラリの一部だけ取り出して使用したい場合、複雑になってしまったコードをリファクタリングしたい場合等、プロジェクト内のクラスの依存関係が一望できると有益な場面は多いのではないでしょうか。 objc_depというスクリプトを用いると、下記のように、Xcodeプロジェクト内のクラスの依存関係を示す図をコマンド一発で生成することができます。 このスクリプトの使い方、生成される図の見方等を紹介します。 スクリプトの実行方法 次のURLからダウンロードしてきて解凍すると、objc_dep.py というファイルが入っています。 https://github.com/nst/objc_dep そのスクリプトを適当な場所に置き、ターミナルから次のように実行します。 というコマンドになります。 依存関係図を表示 出力される.do

    Xcodeプロジェクト内のクラスの依存関係を図示する - Qiita
  • Technical Note TN2123: CrashReporter

  • $(SRCROOT) や $(BUILD_DIR) 等の Xcode で使用しているマクロの置換内容の一覧を調べる方法 - その後のその後

    Info.plistや、ビルド設定をいじっていると、こんな文字列に出くわすかと思います。 $(PRODUCT_NAME) $(TARGET_TEMP_DIR) $(SRCROOT) これらはそれぞれ特別な意味を持ち、Xcode がビルド時だか何だかのタイミングでプロダクト名とか環境に応じたパスとかに置き換えたりしてくれるものです。 が、 「SRCROOTってどこだっけ?プロジェクト直下?それともその一つ下?」 「Library Search Path を指定したいけどこの場所を指定するのにどのマクロを使っていいかわからない」 みたいなことになることが度々あるのではないでしょうか?(僕はあります) そして困ったことに、これらを網羅したAppleのドキュメントもありません。 (※というのは間違いで、バッチリありました。末尾の追記をご参照ください) 最近やっとその「Xcode で使用しているマク

    $(SRCROOT) や $(BUILD_DIR) 等の Xcode で使用しているマクロの置換内容の一覧を調べる方法 - その後のその後
  • iOSのXML解析をJSONみたいに簡単に出来る XML Reader が便利 – Zero4Racer PRO Developer's Blog

    iOS のXML 取得、解析処理には基的ないくつかの処理があります。 XML の処理方式として、 SAX イベント駆動で行うXML解析 DOM インターフェース指向で、木構造として扱う方式 があり、iOSでは、 NSXML(標準, SAX, Objective-C) Libxml(標準, SAX, C言語) TouchXML, KissXML (外部ライブラリ、DOM) など、あるのですが、イベントを自分で記述したり、解析のためにオブジェクトをたどったりと、結構めんどうです。それを簡単にする方法があったのでご紹介します。 XMLは面倒なのですが、それに比べて、JSON は、一行で、 [cc lang=”ObjC”] NSDictionary *dic = [NSJSONSerialization JSONObjectWithData: data options: nil error:ni

  • GitHub - XVimProject/XVim: Xcode plugin for Vim keybindings

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - XVimProject/XVim: Xcode plugin for Vim keybindings
    DNPP
    DNPP 2012/04/29
  • Growl 1.3をビルドしてインストールする - DiaryException

    App Storeで買うとver.1.3.1が170円。自分でビルドするとver.1.3が無料。経験はプライスレス。 http://code.google.com/p/growl/source/checkoutから、ソースをチェックアウトする。 ターミナルでソースのトップディレクトリに入り、generateHgRevision.shを実行 (hgRevision.hを生成)する。TARGET_BUILD_DIRがセットされていないので、カレントディレクトリを指定する (カレントディレクトリ直下にinclude/hgRevision.hが生成される)。 GrowlVersion.h内の#include "hgRevision.h"を#include "include/hgRevision.h"に書き換える。 Xcode 4.2でGrowl.xcodeprojを開く。ビルドターゲットをGrow

    Growl 1.3をビルドしてインストールする - DiaryException
  • What are the details of "Objective-C Literals" mentioned in the Xcode 4.4 release notes?

    Ask questions, find answers and collaborate at work with Stack Overflow for Teams. Explore Teams Collectives™ on Stack Overflow Find centralized, trusted content and collaborate around the technologies you use most. Learn more about Collectives

    What are the details of "Objective-C Literals" mentioned in the Xcode 4.4 release notes?
  • UIKit とスレッドのお約束

    アプリが小気味よく動くようにするために、メインスレッドでの重たい処理を避けて、適宜バックグラウンドスレッドに処理を回すことはよくあります。 このとき注意が必要なのは、バックグラウンドでの処理結果を画面に反映させる時の以下のお約束です。 UIKit のオブジェクトはメインスレッド以外からアクセスしてはいけない Apple のドキュメントとしては Cocoa Fundamentals Guide に “All UIKit objects should be used on the main thread only” と書いてあります。この制限は UIKit 特有ではなく、Java の Swing などでも共通の設計です。GUI のパフォーマンスを良くするために、スレッドセーフをあえて捨てて単純化しているのです。 ではどうすれば良いのかと言うと、バックグラウンドスレッドからメインスレッドに処理を

    UIKit とスレッドのお約束
  • Cocoaの日々: [iOS][Mac] Xcode4 : ドラッグ&ドロップで IBOutlet コードを生成する

    知ってはいたが試してなかった。こりゃ便利。 #しこしこ手で書いていた今まではいったいなんだったのか。。 以下、手順 まず Xib を開いた後、右上の Editor から真ん中の Assistant Editor を開く。

    Cocoaの日々: [iOS][Mac] Xcode4 : ドラッグ&ドロップで IBOutlet コードを生成する
  • Core Animation で画像を回す

    データのダウンロード中など待ち状態のときに、画像をくるくる回して読み込み中だということを表したいことってありますよね。アニメーション GIF や複数の画像の切り替えでも表現できますが、今回は1枚の画像を Core Animation の transform プロパティを使って回す方法を紹介したいと思います。 まず、アニメーションには CABasicAnimation を使います。作成するときに、animationWithKeyPath に transform をセットします。 つぎに、回転のはじめと終わりの角度を設定します。時計回りの場合は fromValue を 0、toValue を 2π にします。反時計回りと場合は fromValue と toValue の値を入れ替えてください。 そして、valueFunction で回転軸を決めます。今回は z 軸で回転させたいので、kCAVa

    Core Animation で画像を回す
  • より豊かな表現のために、3つのステップで実装する Core Text

    こんにちは、開発担当の眞弓です。 テキストを表示するとき、通常は UILabel などを使いますがときどき「凝った文字列を使いたい」ということはないでしょうか? そんなときのために、今回は Core Text の基的な使い方について書いてみようと思います。 人によってやり方は違うと思いますが、ちょっとしたことに使う場合に私がやっててわかりやすかった方法を紹介します。 位置を指定するやりかたはイメージしにくいので、文字列単位で扱えるやり方で実装をしてみました。 以下のような感じで、「属性付き文字列を作って、その文字列を付け足していって、最後にまとめて表示」というやり方です。 1 : 文字列を作成 2 : フレームを作成 3 : DrawRect 1 : 文字列を作成 属性付き文字列は以下のような感じで作っていきます。 atrString = [[NSMutableAttributedStr

    より豊かな表現のために、3つのステップで実装する Core Text
  • Nib ファイルから Objective-C のソースコードを生成する

    iOS/Mac 開発担当の松です。 突然ですが、Nib ファイル(以下 Nib)が好きになれません。確かに GUI の部品をレイアウトするコードを書くのは大変なので、Interface Builder で直感的に画面を作っていけるのはありがたいです。 しかし Visual Studio 等と違って、作った画面がソースコードではなく Nib というリソースになるため、言語や環境によって動的に部品を変更する必要が出てくると、Nib とソースコードに画面を作成する為の情報が散らばってしまいますね。これだと管理コストも高くなりますし、何より気持ちが悪いです。 どうしてソースコードが生成されないんだ!と憤っていたら、nib2objc という Nib から Objective-C のコードを生成するツールが、公開されていることを知りました。しかも随分前からあるみたいです。 早速ですが Mosa の、

    Nib ファイルから Objective-C のソースコードを生成する
  • UITextField でのバリデーションのタイミング

    アプリによってはユーザーの入力値をバリデーションする必要がある場合があります。今回はバリデーションを行うタイミングについて書きたいと思います。 今回は以下のようなアカウント情報入力画面を考えてみます。 UITextField が画面に表示されている NavigationBar には「保存」ボタンが設置されている 入力値が「カラ」もしくは「空白文字」以外の場合を正常な入力とする UITextField への入力値が不正な値の場合には「保存」ボタンを無効化する UITextField のデリゲートでは不十分? UISearchBarDelegate には以下のような入力後に呼ばれるデリゲートメソッドがあります。 - (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText しかし、UITextFi

    UITextField でのバリデーションのタイミング
  • メソッドの遅延実行

    あるメソッドを一定時間後に実行したい、ということはよくあります(これを、メソッドの遅延実行と呼ぶことにします)。そんなときにまず思いつくのは NSTimer を使う方法ではないでしょうか。 NSTimer を使う以外にも、NSObject にある次のメソッドで簡単に同じことができます。 NSObject - (void)performSelector:(SEL)aSelector withObject:(id)anArgument afterDelay:(NSTimeInterval)delay 例として、iPhone 標準搭載の写真アプリを見てみましょう。 写真アプリでは、写真を見ている間に一定時間ユーザの操作が無ければ、ツールバーとナビゲーションバーが消えます。 この処理は次のようなコードで実現できます。 // self は UIViewController … { … // 一定時間

    メソッドの遅延実行