タグ

objective-cに関するbonty_shushushaのブックマーク (10)

  • Blocks非対応なクラスを簡単にCategoryでBlocks対応する方法 - Kyoji Konishi

    CocoaにはBlocksには対応しておらず、Protocolが用意されておりDelegateを使ってcallbackやeventを受け取るようになってるものが多数ある。 いちいちProtocolを実装しないといけなくて煩わしさを感じたり、コードが煩雑になってしまう場合がある。 そこで簡単にBlocks対応にしてしまう方法をご紹介。 StoreKitを例に StoreKitのProductsRequestもDelegateが用意されており、Blocksに非対応なクラス。 In-App-Purchase用のAppStoreにある商品情報を取得するためのクラスだが、初回の取得は遅く2回目以降は早いという特徴が知られていて、AppDelegateなどで、先に一度取得しておくのが通例になっているらしい。 ところがAppDelegateでわざわざこのクラスのDelegateを実装するのは面倒。 そこ

  • Objective-C のプロパティ属性のガイドライン - Qiita

    nonatomic と atomic の使い分けの指針は次のとおり: 参照型: メモリアドレスのみの書き込みなので、常にnonatomicでよい プリミティブ型: int, BOOL等ワンステップでの書き込みが可能: 常にnonatomicでよい 単一のスレッドからしかアクセスされない: 設計に気をつけつつnonatomic推奨 複数のスレッドからのアクセスがあり、long,構造体などサイズの大きい値: atomic推奨 (thx to @takasek) 複数のスレッドから同時に読み書きが行われる可能性があるプロパティには atomic を指定する。 atomic を指定することで getter と setter が排他的に実行されるようになり、値の書き込みに複数のメモリ操作命令が必要な型(構造体など)が中間状態で読み出されることがなくなる。 atomic を指定してもスレッドセーフにな

    Objective-C のプロパティ属性のガイドライン - Qiita
  • UIAlertView の delegate 束縛を解放しよう - mixi engineer blog

    どうも、佐野です。今回は UIAlertView の拡張カテゴリを作って、delegate ではなく Block でコールバック処理を記述するための拡張カテゴリの作り方を紹介します。 iOS4 から Objective-C では Blocks という独自のクロージャ機能が搭載されました。これによってアニメーションの記述やコールバック処理などグッと直観的・効率的に記述できるようになったのですが、残念ながら UIKit によって提供されているクラスの多くはまだ Blocks に最適化された作りになっていません。UIAlertView もそのひとつです。 UIAlertView は、その delegate を実装することでユーザアクションに対する処理を記述する訳ですが、どうも使い勝手が悪い。例えば、同じで画面内で2通りの UIAlertView を表示するような UIViewController

    UIAlertView の delegate 束縛を解放しよう - mixi engineer blog
  • 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
  • [iOSアプリ開発] いまさら聞けないモダンな書き方 | DevelopersIO

    Xcode 4.4 から Objective-C が書きやすくなりました、という今更のいまさらな話ですが、ネット上に転がっている少し前のサンプルソースなどは古い書き方のものもあるようなので、今回はよく使う NSArray と NSDictionary と NSNumber の書き方についてだけ備忘録として残しておこうと思います。 NSArray インスタンスの生成 // 古い書き方 NSArray *oldArr = [NSArray arrayWithObjects:@"value1", @"value2", @"value3", nil]; NSMutableArray *oldMutableArr = [NSMutableArray arrayWithObjects:@"value4", @"value5", @"value6", nil]; // 新しい書き方 NSArray *n

  • Objective-Cでスレッドをデッドロックさせずに非同期処理の終了を待つ方法。

    「Objective-Cで非同期処理を同期処理にする方法。」に、ディスパッチセマフォによってスレッドがデッドロックしてしまう場合があるということを書きました。 デッドロックする例 これがその例です。 NSLog(@"start."); dispatch_semaphore_t semaphore = dispatch_semaphore_create(0); dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{ for (int i = 0; i < 5; i++) { sleep(1); NSLog(@"Process: %d", i); dispatch_sync(dispatch_get_main_queue(), ^{ NSLog(@"Main Process"); }

    Objective-Cでスレッドをデッドロックさせずに非同期処理の終了を待つ方法。
    bonty_shushusha
    bonty_shushusha 2013/05/08
    非同期処理でメインスレッドをロックさせない方法
  • Objective-C - おなかすいたWiki!

    概要 Objective-Cは、Smalltalkを基礎とした非常に動的な言語で、コンパイラはオブジェクト自体について多くの情報を実行時まで決定しない (動的バインディング) 可能な限り多くの決定が、コンパイル時とリンク時ではなく実行時に行われる Objective-CはC言語を拡張したものなので、CocoaのC言語の関数とかも混ぜて使う。 オブジェクト指向プログラミングをサポートするために、(Smalltalkから派生した)構文とセマンティクスにかかわるいくつかの機能が拡張されている ↑ Cocoa OPENSTEPを基に開発されているMac OS X向けのフレームワーク(API) Objective-Cはコンパイル時ではなく実行時に決定できる事項が多い。これこそが、同じく動的な特性をフルに活用している、Cocoaフレームワークとベストマッチとなる ↑

  • Google Objective-Cスタイルガイド 日本語訳

    Text Drop 翻訳、プログラミング、写真、カメラなどについて書いてます。スタイルガイド/コーディング規約やチートシートなど、ちょっと便利なものを翻訳しています。 TEXTdropでは、C++プログラマーも利用できるパワフルな機能を搭載。C++のコードを書く際に行う手順や避けておきたい工程などを詳しく説明しています。コードスタイルラインの日語版では、日語訳やJ P Yへの換金もサポート。話題性があるオンラインカジノ 日円変換や入金の際のバグにも対応しています。統一性のあるコードを書くためのポイントや規約の種類を参考にする事ができます。

  • 2010-02-03

    この動画を見るとSafariもMailも写真管理もiPad専用になっていることがわかる。 でかくなったiPodTouchと紹介されている所が多いけど、それは評価を間違っているのではないだろうか。 店頭で実機を見るのが楽しみだ。 Java基礎文法最速マスター - いろいろ解析日記を参考に、Objective-Cのものを書いてみた。 まだまだ歴が浅いので間違っている所があるかもしれません。 [2012-08-03追記] ARCやリテラル表記など新しい記法が導入され、このページに記載されていることは多少古くなりつつあります。ただ、とっかかりとしてかるく読んでみる程度で良いと思います。今や色んな人が解説記事を出しているので、そちらも是非参考になさってください。 追記おわり 基礎 デバッガコンソール出力 Xcodeのデバッガ出力を行うにはNSLog関数を使います。 printfと同様のフォーマット文

    2010-02-03
  • Objective-Cは特殊な言語? - @IT

    Objective-Cは特殊な言語?:Cocoaの素、Objective-Cを知ろう(1)(1/2 ページ) iPhone用アプリケーション開発で注目を集める言語「Objective-C」。C++とは異なるC言語の拡張を目指したこの言語の基を理解しよう(編集部) 唐突ですが、皆さんは新たに1つのプログラミング言語を修得しようと思い立ったとき、最初に何をしますか。その言語の入門用サイトを見て回る、関連書籍を立ち読みする、サンプルを入手して取りあえず動かしてみる、といったところでしょうか。ちなみに私は書籍が好きで、しかも立ち読みではなく購入派です。 いずれにしても、まずはその言語のコードを目で見て、「いったいどんな言語なのか」というイメージをつかむのが最初の一歩となるでしょう。何かしらのプログラミング経験がある人なら、コードを眺めて、「ああ、あの言語に似ているな」とか「うわ、これはとっつきに

    Objective-Cは特殊な言語? - @IT
  • 1