タグ

objective-cに関するmadronのブックマーク (9)

  • About Objective-C

    About Objective-CObjective-C is the primary programming language you use when writing software for OS X and iOS. It’s a superset of the C programming language and provides object-oriented capabilities and a dynamic runtime. Objective-C inherits the syntax, primitive types, and flow control statements of C and adds syntax for defining classes and methods. It also adds language-level support for obj

  • C/Objective-C + Blocks でクロージャ - TrashSUITE

    Blocks というのは Apple が C/C++/Objective-C 向けに独自実装したクロージャ的な機能.Snow Leopard リリース時に GCD すげぇ!という記事で見かけて『Apple やりやがった,あの変態やりやがった』くらいにしか思っていなかったのだけど,iPhone OS4.0 で使うことになりそうなので,ザックリと調べてみた ザクザクっとドキュメントを読みつつテストしつつという状態で書いたメモなので,嘘を書いている可能性が大いにある! 以下,Blocks をクロージャと呼ぶ シンプルに // 無名でダイレクトに呼ぶ ^(void) {puts("closure");}(); //=> closure ^() {puts("closure");}(); //=> closure ^{puts("closure");}(); //=> closure // 名前を付

    madron
    madron 2012/04/13
    Blocks, __block, Block_copy, Block_release
  • viva Cocoa learn ObjC  Simple version no.3

    このサイトについて contact me home Programming C 言語 learn C Objective-C 2.0 言語 learn ObjC Objective-C 2.0 言語 簡易版 learn ObjC  Lite Cocoa GUI アプリケーション Cocoa GUI App メモリ管理検証  new Memory Management Test Other 参考図書・グッズ Favorites ソフトウエア Software soon Legacy 古い記事 Objective-C Primer 3. 宣言されたプロパティ 宣言されたプロパティ (Declared Properties) も Objective-C 2.0 から採用された新しい機能です。従ってガベージコレクションと同様に Mac OS X 10.5 Leopard 以降でしか使えません。ここ

    madron
    madron 2012/03/30
    @dynamic について。
  • Objective-Cの @property と @synthesize の組み合わせが何をやっているのかを解説 - 強火で進め

    改めて説明するまでも無いかと思ってたけど意外と知らない人は知らないみたいので解説を書いておきます。 @property と @synthesize の組み合わせは端的に言うと「setterとgetter(アクセッサメソッド)をコンパイルの前に生成させる」以上。 ※Objective-Cの場合、 @ で始まるものはプログラムでは無く、コンパイラへの指示となります。この様な指示をObjective-Cではコンパイラディレクティブ(Compiler directive)と呼びます。 詳細説明 setterやgetterはメンバ変数を直接扱わずにメソッド経由で代入やデータの取得をする為に定義するメソッドです。setterがデータを代入する時のメソッド、getterがデータを取得する時のメソッドとなります。 メンバ変数をメソッド経由にすることにより代入前にチェックを行って有効な値のときのみメンバ変数

  • iOS 開発で、EXC_BAD_ACCESS とさよならするための6つのルール – Zero4Racer PRO Developer's Blog

    2012/3/22 いくつか修正、加筆しました。 追記もご覧下さい:iOS 開発で、EXC_BAD_ACCESS とさよならするための6つのルール [追記] カプセル化について « Zero4Racer PRO Developer’s Blog 対象がiOS4以上の場合は、ARCを使用するのもオススメです。iOS 5 公開記念! Objective-Cのメモリ管理の革命、 ARC 超入門(サンプルはgitHubに公開) « Zero4Racer PRO Developer’s Blog をご覧下さい。 @Awaresoft さんのこの記事が、ほとんどすべての疑問に答えています。とてもよい記事なので合わせてご覧下さい。プロパティに対応するインスタンス変数の命名規則について – Awaresoft iOS プログラミングでのメモリ管理の基 iPhone開発で主に使用される言語は、Object

  • iOS 開発で、EXC_BAD_ACCESS とさよならするための6つのルール [追記] カプセル化について – Zero4Racer PRO Developer's Blog

    iOS 開発で、EXC_BAD_ACCESS とさよならするための6つのルール | Zero4Racer PRO Developer’s Blogの記事を読んでいただき、ありがとうございます。”アキラ”さんから、 オブジェクトは必ずプロパティにする、というのは、利便性を考えれば理解はできますが、 それはクラス設計者が楽をするためであって、カプセル化を無意味にする行為なので、それほどいい選択とは言えないと思いますねぇ。 という指摘を頂きました。これは、プログラムを正しくカプセル化する上で重要です。私もこれは非常に重視していますが、Objective-Cには、プロパティに、プライベート、パブリックの指定が出来ないので、一見、プライベートのプロパティが指摘出来ないように感じます。しかしちょっとの工夫で、実現することが出来ます。 コードで書くと、以下のようになります。 [sourcecode la

  • シングルトンを実装する時には @synchronized(self) - 強火で進め

    Objective-Cでシングルトンを実装するのってどう書くんだっけ?と参考になるコードをcocos2dで探していたらこの様な記述がされていました。 static GameSoundManager *sharedManager = nil; + (GameSoundManager *) sharedManager { @synchronized(self) { if (!sharedManager) sharedManager = [[GameSoundManager alloc] init]; return sharedManager; } return nil; } 他の人の記述を見てなかったら @synchronized(self) の記述を抜かして書く所でした。他の人のコード読むの重要!! このコードの様に @synchronized(self) {} を行う事で、selfに対する

    シングルトンを実装する時には @synchronized(self) - 強火で進め
    madron
    madron 2012/03/08
    Objective-C でスレッドセーフなシングルトン生成
  • xxd を使って画像などのバイナリデータをソースコードに含める方法

    iOS向けのライブラリやフレームワークを作成しているときに、どうしても画像などのバイナリデータをライブラリやフレームワークに含めたくなる時があります。たとえばUI系のフレームワークなどですね。このようなときに、たとえば静的ライブラリ(.aと.h)やフレームワーク(.framework)とセットで画像を一緒に同梱し、ユーザーのXcodeプロジェクトに一緒に含めてもらうという方法もあるのですが、この方法だと画像名がユーザーのプロジェクトに含まれている画像とかぶったりしてはいけませんし、管理が面倒になってしまいます。また、ライセンスがプロプライエタリなライブラリでは、画像などのリソースをあまり積極的にユーザーに公開したくないというニーズがあったりします。 そこでxxdツールのご紹介です。岸川先生に教えていただいたのですが、xxdというツールを使えばバイナリデータをC言語のヘッダファイルとして簡単

  • Cocoaの素、Objective-Cを知ろう - @IT

    Objective-C初心者のための入門連載です。Objective-Cとは何かの基礎知識から、さまざまな基構文/文法(変数、データ型、nil、配列、プロパティ、アクセサ、クラス、スーパークラス、ルートクラス、サブクラス、ポインター、メソッド、インスタンス、リンク、ラッパークラス、コンパイラディレクティブ、id、メッセージ式、文字列操作、forなどの繰り返し(ループ)、列挙子、ディクショナリ(連想配列)、高速列挙、オブジェクト指向、継承、プロトコル、多重採用、セレクター、クラスクラスター、カテゴライズ、カテゴリ、メモリ管理、ガベージコレクション、参照カウンターなど)を、書き方が分かる豊富なサンプルコードとともに解説します。

  • 1