タグ

iOSとXcodeに関するfoxsafariのブックマーク (100)

  • Cocoaの日々: ObjCがサクっと書けるコーディングTips

    iOS/iPhone/iPad/MacOSX プログラミング, Objective-C, Cocoaなど 最近よく使っている省略記法を紹介する。これらを使うとなんとなく気分がいい。 クラスメソッドの . (ドット)アクセス 実はクラスメソッドも .(ドット)表記が可能になった。 [SomeClass sharedInstance] ↓ SomeClass.sharedInstance当然ながらさらにメソッドも重ねられる。 SomeClass.sharedInstance.localNameXcodeではクラスメソッドの.表記は補完が効かないのが難点。ただしそれ以降のメソッドは補完してくれる。 例えば SomeClass.share... ここまでは補完しないが、SomeClass.sharedInstance.local.. ここまで来ると補完できる。 インスタンス作成 (1)newお馴染

    Cocoaの日々: ObjCがサクっと書けるコーディングTips
  • Grand Central Dispatch その4 group | Objective-Audio

    前回紹介したdispatch_applyはブロックの処理が終わるまで待ってくれていましたが、dispatch_asyncは別スレッドで処理されてしまうので、どの順番で処理されるのかも分からない状態でブロックを処理させっぱなしになってしまいます。 グループというのを使えば、asyncで処理する複数のブロックをひとつのグループにまとめて、それらのブロック全部が終わったタイミングを受け取る事が出来ます。 まず、グループを作る関数がこれです。 dispatch_group_t dispatch_group_create(void); 次に、グループで処理させたいブロックを渡すのがdispatch_group_asyncです。グループはasyncオンリーでsyncはありません。 void dispatch_group_async(dispatch_group_t group, dispatch_qu

  • Grand Central Dispatch その3 apply | Objective-Audio

    前回のコードのように同じ処理をforループでキューに渡すようなとき、それ専用の関数がディスパッチには既に用意されています。dispatch_applyです。 void dispatch_apply(size_t iterations, dispatch_queue_t queue, void (^block)(size_t)); iterationsの数だけブロックをキューに渡して処理させます。ブロックはsize_tの引数を一つだけ持ち、よくあるforループと同じように0から1ずつ増やした値が渡されます。 まずは、サンプルコードです。 #include <stdio.h> #include <dispatch/dispatch.h> int main (int argc, const char * argv[]) { dispatch_queue_t queue = dispatch_ge

    foxsafari
    foxsafari 2013/04/21
    Grand Central Dispatch その3 apply
  • Grand Central Dispatch その2 Queue | Objective-Audio

    Queueを作る ディスパッチの基的な使い方は、処理したいコードをブロックや関数で用意しておいて、キューにそのブロックや関数を渡すという流れになります。 ディスパッチのキューには2種類あります。アプリ(OS?)に最初から一つ用意されているグローバルキューと、自分で作るキューです。グローバルキューは並列に処理できますが、自分で作るキュー(以後シリアルキューと書いて区別します)は入れていった順番に直列でしか処理できません。 キューはdispatch_queue_tという型のオブジェクトで表されます。ディスパッチのオブジェクトは他にもいくつかありますが、それは次回以降に後回しにします。 グローバルキューを取得するにはこの関数を使います。 dispatch_queue_t dispatch_get_global_queue(long priority, unsigned long flags);

    foxsafari
    foxsafari 2013/04/21
    Grand Central Dispatch その2 Queue
  • Grand Central Dispatch その1 Block | Objective-Audio

    Grand Central Dispatchについて日語で丁寧に詳しく説明してくれるサイトはないかなぁと待っていたのですが、待っている間にひととおり自分なりに調べ終えてしまったので、まとめて書いておきます。まちがいに気がついたらご指摘いただけるとうれしいです。 Grand Central Dispatch(以下ディスパッチと書きます。リファレンスとか関数名とかGrand Centralって全然ついていなくてDispatchだけですし。)とはなんぞやというと、Snow Leopardから導入された並列処理のAPIです。並列処理といえばLeopardではNSOperationというObjective-CのAPIが導入されましたが、ディスパッチはC言語のAPIとして用意されていて、システムに近い低レベルなところで使えるものです。 あれこれ試した印象で言うと、コアが2つしかないCPUMacでた

    foxsafari
    foxsafari 2013/04/21
    Grand Central Dispatch その1 Block
  • Instruments の Leaks の見方(Live Bytes や Living の意味) - その後のその後

    このLive BytesやらLivingやら、タイトルから大体推測できるものの、ちゃんとした定義をしりたかったのですが、ヘルプ内を探しても見当たらず、iOS開発関係のを見てもどの値が何とまでは書いてくれていませんでした。たまたまググったら出てきたので、下記にまとめておきます。 Live Bytes The Live Bytes column indicates how many of this type of object have been allocated and still are around in memory. 該当するタイプのオブジェクトの現在のメモリ使用量 # Living # Living column tells you how many objects of this type are still around in memory. 該当するタイプのオブジェクトが

    Instruments の Leaks の見方(Live Bytes や Living の意味) - その後のその後
  • iOS アプリのバイナリを少しのぞいてみる

    Mac / iOS 開発担当の松です。 皆さんご存知のように iOS アプリを作るのに欠かせない Objective-C は、メソッドの解決が動的なこともあり、C言語のファミリーでありながら強力なリフレクション機能を備えています。そのリフレクションの必要性等から、実行ファイルには様々な情報が埋め込まれていて、何気なくバイナリエディタで開いただけで、テンションが上がるバイナリに仕上がっています。のぞかずにはいられませんね。という訳で今日はこのバイナリを少しのぞいてみたいと思います。 まずはバイナリの概要を抑えておきましょう。iOS 上の実行ファイルは Mach-O という形式で(まーく・おーと読むらしい)、これは WindowsLinux でいうところの EXE や ELF にあたります。この Mach-O のフォーマットについては アップルからドキュメントが提供されていますね。 細

    iOS アプリのバイナリを少しのぞいてみる
  • UICollectionViewLayoutでカバーフローを作りたい!

    #yidev 第12回勉強会用の資料です。 UICollectionViewとUICollectionViewLayoutのざっくりとした説明と、それらを使用してカバーフローを作る方法の解説です。Read less

    UICollectionViewLayoutでカバーフローを作りたい!
  • iOS開発wiki

    2012/02/13 メニュー トップページ 動画再生について 2012/01/25 StoryBoardの使い方 2012/01/24 モデルのパターン 2012/01/20 ユーティリティ 2012/01/19 ビューコントローラのパターン メモリ管理のパターン アプリケーション設計のパターン 通知のパターン グラフィック関連のフレームワークについて 2012/01/18 FC2WIKIガイド 設計について ネットワークのパターン テーブルのパターン このページを編集してみよう WIKI構文サンプル 編集用テンプレート

  • [Photoshop] iOS アプリの Retina / non-Retina 画像ファイルを一括で作成する | DevelopersIO

    はじめに iOS アプリの画像ファイルは Retina 用と non-Retina 用の2パターン用意しなければなりません。しかしながら、1つずつリサイズ、名前をつけて保存…というのはあまりにも非効率です。 そこで Photoshop のバッチ機能を使って Retina / non-Retina それぞれの画像を一気に作成する手順をまとめてみました。 手順 1. フォルダを2つ用意する まずはフォルダを2つ用意します。ひとつがオリジナル画像ファイルを保存するフォルダ、もうひとつが実際に iOS アプリに使う画像ファイルを保存するフォルダになります。それぞれ original と assets というフォルダ名にしました。 2. Retina 用の画像を作る 次に Retina 用の画像を一式作成します。ポイントは「ファイル名に @2x は付けない」ところです。original フォルダに保

  • 良い事ずくめのAdHoc配布方法OTA

    iOSでアプリを開発中に実機での動作確認は不可欠です。AdHocで配布し『iTunes』や『iPhone構成ユーティリティ』などを使って実機にインストールするのが普通と思います。 AdHocアプリの配布&インストール方法にOTA(Over The Air)がある事を知りやってみたらとても便利でした。

  • ARCを使ってるプログラムを配布した時に使用者がARCを有効にしないでビルドするのを防ぐTips - 強火で進め

    Tip: Ensuring ARC is Enabled at Compile Time. | iOS Developer Zone http://iosdeveloperzone.com/2013/04/02/tip-ensuring-arc-is-enabled-at-compile-time/ ちなみにファイルごとにARCを有効にしたい時は -fobjc-arc 、無効にしたい時は -fno-objc-arc なんてオプションをしています。ここで使っているのはこの有効の時に使う obj-arc ですね。 ! が付いてるの obj-arc じゃない時はエラーが表示すると言う記述に成っています。

    ARCを使ってるプログラムを配布した時に使用者がARCを有効にしないでビルドするのを防ぐTips - 強火で進め
  • Google Sites: Sign-in

    Not your computer? Use a private browsing window to sign in. Learn more about using Guest mode

  • Modern Objective-Cでのシンプルなプロパティ記述方式 - Qiita

    今月からようやくModern Objective-Cに着手(かなり今さらだけど・・) 記述がかなりシンプルだとは聞いていて、情報もたくさん挙がっていたのだけど、困惑したのでメモ。メンバー変数とか@synthesizeとか宣言不要でコードがスッキリして嬉しい。基的には@propertyだけ宣言すれば良いみたい。また@properyもいままでヘッダファイルでのみ宣言していたけど、プライベートなものは実装ファイルの無名カテゴリ内に宣言すればよいみたい(パブリックプロパティは従来通りヘッダファイルに記述)。以下、プライベートプロパティを宣言する時の例。 一応、メンバー変数とか当に定義されているのか確認。 もう"Legacy" Objective-Cでは書けないな。 参考サイト 参考にさせていただいたサイトです。 Objective-Cプログラミング言語 - プロパティの宣と実装 by Appl

    Modern Objective-Cでのシンプルなプロパティ記述方式 - Qiita
  • 今日からライオンでも使える!Xcode4.4 Modern Objective-C Syntaxでコードをきれいにする方法 – Zero4Racer PRO Developer's Blog

    Mountain Lion発表とともにリリースされたXcode4.4。OSX Lionでも使える様になっています。Xcode4.4から、llvm (コンパイラ)のバージョンが4.0になっています。 それによってObjective-Cの書き方にかなりの改善が加えられたので、それを簡単にまとめておきたいと思います。これらの改善は、iOS6に関係なく動作するので、いま作っている、iOS5用のコードにも使用出来ます。 synthesize by default コンパイラが@synthesizeを補完してくれる様になったため、基的な状況では、@synthesizeを書かなくてよくなりました。また、synthesizeされる相手のivarも、同名の変数ではなくて、アンダーバーを最初に付けた物がデフォルトとなります。これまで議論されて来たことがappleのコンパイラによって、これからは定義されている

  • Xcode 4 でデフォルトになった LLVM って何?

    こんにちは。開発担当の金内です。 Xcode 4 は UI もすっかり変わりましたが、ビルドの要であるコンパイラもデフォルトが変更されています。その新しいコンパイラのキーワードが「LLVM」です。いまいち聞き慣れない方もいると思うので、今回はその LLVM について簡単にご紹介します。 ざっくりとした結論から言ってしまえば、Xcode における LLVM は従来のデフォルトコンパイラである GCC を置き換えるものです。LLVM には次のような特徴があります。 ・コンパイルが速い ・コンパイルされたコードが速い ・エラーメッセージがわかりやすい ・他のツールと連携しやすい いいことばかりですね。 しかし、コンパイラは要となる重要なコンポーネントなので、互換性などへの配慮から、Apple は GCC からの移行を少しずつ段階的に進めています。 実際、Xcode 4.0 でのデフォルトは完全に

    Xcode 4 でデフォルトになった LLVM って何?
  • xcode Blocks を使ってコールバック

    こんにちは! 共同開発部で日々コードと戯れております、福井です。 iOS 4.0 から追加された関数オブジェクト的なものである Blocks をご存知でしょうか。この Blocks のおかげで UIView のアニメーションは劇的に書きやすくなりました。もう当に Blocks って素晴らしいですね。 アニメーション? 違う!違うよ!根的に違うよ! Blocks でやりたいのはアニメーションじゃないよ! おれは Blocks でコールバックを書きたいんだ! ということでさっそく書いてみました。 今回は MyPickerView という UIPickerView をちょっと拡張したものを作ってみます。 MyPickerView の要件はこちら ・下から出てきたり引っ込んだりする ・出てくると画面がちょっと暗くなる ・終了ボタンと完了ボタンがある ・コールバックの Blocks を受け取って

    xcode Blocks を使ってコールバック
  • “The executable was signed with invalid entitlements.” の対処方法

    AdHoc ビルドを作成し、実機に転送できないことがあったのでその解決方法の一つをご紹介します。 問題発生時の状況 AdHoc ビルドは以下のような手順で作成していました。開発環境は Xcode 4.2, SDK 5.0 です。 Xcode の メニューバーから “Archive” を実行 オーガナイザー の “Archives” タブでさきほどアーカイブしたものを選択 “Share…” ボタンから Contents は “iOS App Store Package (.ipa)” を選択し、対象となる “Identity” を選択 作成した .ipa ファイルをオーガナイザー経由でデバイスにインストールしようとすると以下のような警告が出てしまいインストールできませんでした。 The executable was signed with invalid entitlements. The

    “The executable was signed with invalid entitlements.” の対処方法
  • Nib ファイルから Objective-C のソースコードを生成する

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

    Nib ファイルから Objective-C のソースコードを生成する
  • 【iOS/Mac開発】超サクサクアプリへの必須ツール Instruments を使いこなそう

    こんにちは。iOS / Mac 開発担当の金内です。 使って幸せなアプリには、サクサクとした動きが欠かせませんね。自分たちで作っているアプリが「サクサク」でなく「もっさり」と言われてしまうと残念な気持ちになりますが、反面「よし。こうなったら超最適化して超サクサクなハイパフォーマンスアプリを目指す!」と誓いを立てるよい機会でもあります。 そんな誓いを立てたあなたにピッタリのツールが Xcode に付属している Instruments(インストゥルメンツ)です。フェンリルのウェブブラウザ Sleipnir for Mac や Sleipnir Mobile for iPhone / iPad の開発でも大活躍しています。 Instruments は、一般的にはプロファイラという種類のツールにあたります。プロファイラは、どのオブジェクトがどれくらいメモリを消費しているとか、どのメソッドにどれくら

    【iOS/Mac開発】超サクサクアプリへの必須ツール Instruments を使いこなそう