タグ

Objective-Cに関するagwのブックマーク (75)

  • GitHub - microsoft/WinObjC: Objective-C for Windows

    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 - microsoft/WinObjC: Objective-C for Windows
  • 画像ファイルの保存方法

    保存すべき画像がNSImageクラスのインスタンスオブジェクトとして保持されているものとします。この画像をファイルとして保存する方法について説明します。 TIFFで保存する場合 NSImageは以下のメソッドを持っているため、TIFF形式のデータを得る事は簡単にできます。 - (NSData *)TIFFRepresentation NSDataのwriteToFile:atomically:メソッドを使えば、データを指定したパスにファイルとして書き込む事ができます。atomicallyをYESにしておくと、まず別の名前でファイルに書き込み、エラーが発生しなかった事を確認して指定されたファイル名に書き換えるという二つのステップを踏みます。こうすると書き込み中に何らかのエラーが起こった時に元のファイルを壊さずに済みます。 - (BOOL)writeToFile:(NSString *)pat

  • +BLOG

    +BLOG ヤバイ!AMAZONプライムデーでこれ買った!ベスト1 2023/7/12 地元民が選ぶ名古屋グルメおすすめ12選 2022/7/22 モンブランクレープがべられる『IVY’s GELATO&Coffee』 2022/7/8 2022/7/11 洗車後のコメダ新作『ミルクロネージュ』が身体に染みた 2022/7/3 真夏日PM3:00地獄のジムニー洗車 2022/7/2 『ブルーボトルコーヒー』でワッフルコーヒータイム 2022/7/1 灼熱地獄でべるレッドチリスモーキーワッパー 2022/6/30 毎年恒例のすき家でニンニク祭してきた 2022/6/29 2022/6/30 小袋ナッツどれがいいんだ問題を解決する 2022/6/28 買うべき名品!ドンキの『ナッツ&デザート』 2022/6/27 +BLOGは名古屋のフリーランス個人ブログです! 人気記事 ヤバイ!AMAZ

    +BLOG
  • iOSアプリ開発の本を書きました - A Day In The Life

    ご無沙汰しております。約半年ぶりの記事です。 この間、ずっと iOS アプリ開発のを書いていました。タイトルは「プロの力を身につける iPhone/iPadアプリケーション開発の教科書」です。 出版社様から書籍執筆のお話を頂いたのが約1年半前でした。やっと発売にこぎつけることができました。2月26日発売です。早ければ22日から書店に並ぶと思います。 の内容のいくつかは当ブログの記事が元になっています。iOS アプリ開発をはじめられたばかりの方からバリバリ開発している方まで幅広く読める内容になっています。魂込めて書いた自信作ですのでよろしくお願いします。 発売に先駆けて「プロの力を身につける iPhone/iPadアプリケーション開発の教科書」の目次を紹介させていただきます(ついでに元になったブログ記事へのリンクをはっておきます。中身検索的な感じでお使いください)。 iPhone/iPa

    iOSアプリ開発の本を書きました - A Day In The Life
  • Objective-Cでよく使う便利マクロを10個集めてみた - Qiita

    1. AppDelegateの参照 AppDelegate≒グローバルとして使う場合にとても便利です。 ゆとり向けです。あまり使う頻度が高いと設計ができてないということなので要注意かも。 #define APP_DELEGATE ((AppDelegate*)[[UIApplication sharedApplication] delegate]) 2. テストの時に便利なBundleの参照 ユニットテストを書いてみたけどmainBundleがうまく取れなくってこける、という時のために。bundleForClass:[self class]を使うことで対応するバンドルを取得するようにします。

    Objective-Cでよく使う便利マクロを10個集めてみた - Qiita
  • クラスインスタンスの種類を判定する : Objective-C プログラミング

    Objective-C では、変数に格納されたクラスインスタンスの種類を調べることができるようになっています。 クラス名を文字列で取得する たとえば、id 型の変数 obj に格納されているクラスの名称を、次のように "NSStringFromClass" 関数を使用して、NSString* 型の文字列で取得することができます。 // クラス名を文字列で取得できます。 NSString* className = NSStringFromClass([obj class]); このようにすることで、変数に格納されているクラス名を NSString 型の文字列として、取得することができます。 ここで注意点したいのが、NSString のようなクラスクラスタの場合には、実際に生成されているインスタンスのクラス名が取得できるようです。 たとえば NSString クラスと NSMutableStr

  • Technical Note TN2123: CrashReporter

    agw
    agw 2012/11/28
    便利関数。NSIntersectionRect等。
  • CompositeLab - Cocoa Break!

    agw
    agw 2012/11/27
    括弧の使い方がすごい。size = [(a = [[NSImage alloc] init]) size]とか。
  • さき的視点:NSObject の release と dealloc - livedoor Blog(ブログ)

    以下の実装にはバグがあります。 @interface MyObj : NSObject { NSDate * create_date; } @end @implementation MyObj -(id) init { create_date = [[NSDate alloc] init]; return [super init]; } -(void) release { [create_date release]; [super release]; } @end これくらいは簡単…でしょうか? alloc + init でオブジェクトを作った場合は release する必要があります。release しなければメモリリークです。でも release すればメモリが解放されるという話でもありません。 release の役割は「retainCount を1減らすこと」と「retainC

  • Objective-Cでの静的なメンバ変数について

    Objective-Cでのstaticなメンバ変数について、ちょっと困ったので使い方をまとめておきました。 宣言部分はこちらです #import <Foundation/Foundation.h> @interface SampleClass : NSObject { } +(NSString*)getString; +(void)setString:(NSString*)str; @end 定義部分はこちらです。 staticなオブジェクトを宣言はidにしておくほうがよさそうです。 #import “SampleClass.h” @implementation SampleClass static id string = @”hogehoge”; +(NSString*)getString { return string; } +(void)setString:(NSString*)st

    Objective-Cでの静的なメンバ変数について
  • Objective-Cのオブジェクト初期化処理について - Hello, world! - s21g

    Objective-Cでオブジェクトを初期化する処理は、-init メソッドなどの初期化メソッドで実装されます。 よく見かけるのはこんな例ですね。 1  - (id)init 2  { 3  [super init]; 4  /* initialization code */ 5  return self; 6  } しかしながら、基底クラスの初期化処理[super init]の最中に、 メモリアロケーションの失敗などによって正常に初期化が行われなかった場合に備えて、次のようなエラーハンドリングを行った方が良いでしょう。

  • Objective-C勉強したいならコレを読め2012秋

    前提「iPhoneアプリを作りたいなら」ではない。「売れるアプリを作る企画力」や「イケてるUIを作るデザイン力」なしに、「アプリ開発に必要なObjective-Cの技術力」だけあっても意味ない。それでもいい人向け。前提2巷のブクマされている「オススメ集」は自身の著書や身内のを薦めるためのポジショントーク的な選書がよくある。溢れかえる「分かりやすさ」を訴えるは必要はない。買うとしても1冊で十分。 分かりやすいじゃないと身につかないなら、結局作れるものは「その程度」のものに留まる。そして「その程度」を作れる人は既にうじゃうじゃいるからApple税を無駄にするだけ。公式ドキュメント日語ドキュメント - Apple Developer 日語化された公式ドキュメント。全てを読むのは難しいが、「Objective-C プログラミング言語」「Objective-Cによるプログラミング」を読め

    Objective-C勉強したいならコレを読め2012秋
  • エキスパートObjective-Cプログラミング ― iOS/OS Xのメモリ管理とマルチスレッド

    書誌情報 著者: 坂一樹 発行日: 2011-10-13 最終更新日: 2013-09-19 バージョン: 2.0.0 ページ数: 238ページ(A4PDF版換算) 対応フォーマット: EPUB, PDF 出版社: 達人出版会 対象読者 C/C++には詳しいが、Objective-Cには不慣れな人。Objective-Cのソースコードが、実際どのように動くのか知りたい人。iOSまたはMacアプリ開発者 初心者を抜けだして、より深く学びたい人。 著者について 坂一樹 ソフトウェアエンジニアtwitterアカウントは@splhack。stack overflow reputationは4500以上。 UNIXカーネル/デバイスドライバ/組み込み系ソフトウェアエンジニアを5年 ゲームプログラマを7年 Webエンジニアを1年 モバイル系ソフトウェアエンジニアを4年 業以外には、NetBSD

    エキスパートObjective-Cプログラミング ― iOS/OS Xのメモリ管理とマルチスレッド
  • 美しきObjective-C

    Objective-Cというプログラミング言語があります。 C言語をベースにオブジェクト指向言語のSmallTalkの拡張を施した言語です。 オブジェクト指向を取り入れたC言語にC++がありますが 根から拡張されているC++と違い Objective-Cは素のままのC言語にSmallTalkを融合させたような形を取ります。 Objective-Cは世界で2番目に美しいGUIを生み出した現AppleComputer社CEOである Steve Jobs氏がNeXTコンピュータのOSであるNeXTSTEPで採用した言語です。 NeXTSTEP自体はPC/AT互換機やHewlett Packard社のHP9000、 Sun Microsystems社のSparcStationにも移植されたようですが、残念ながら私は触れた事がありません。 現在では希にYahoo Auctionに出品されますが、

    agw
    agw 2011/09/08
    これは面白いw
  • プロトコル

    メソッドをクラス間で共有する プロトコルという用語は、比較的ネットワーク用語として利用されていますが、Objective-C に限っては、複数のクラスで実装される同一の名前のメソッドを共有するための、メソッドの宣言のことを指します。 Java 言語や C# 言語ではインタフェースと呼ばれる概念に近い存在です。 プロトコルが利用されるのは、プログラムの設計上の問題で、クラスが特定のメソッドを実装していることを保障するための手段として使われます。 例えば、特定のライブラリ仕様に基づいたクラスは指定したプロトコルに準拠させなければならない、といった関係を築くことができます。 プロトコルが提供するのは宣言されたメソッドだけで、メソッドの実装がどのような処理を実行するかは自由です。 プロトコルを宣言するには @protocol コンパイラディレクティブを用います。 この中で、プロトコルが規約として指

  • メソッドのポインタ Objective-C入門 WisdomSoft

    メソッドを関数として呼び出す 実は、Objective-C のメソッドの実態は C 言語の関数と同じです。 普段は隠蔽されていますが、メソッドとは最初の引数に自分のクラスを参照するオブジェクトを受け取る関数なのです。 メソッドの実体が関数であるという事実は、C 言語との親和性が極めて高いことを意味してます。 ピュアな C 言語で記述されたライブラリから Objective-C のメソッドを呼び出したり、オブジェクトを利用することも無理な話ではないのです。 Objective-C のメソッドは、常に IMP 型であると定義されます。 IMP 型は、ヘッダファイルで次のように定義されています。 typedef id (*IMP)(id, SEL, ...); この定義からも分かるように、Objective-C で宣言されたすべてのメソッドは、暗黙的に id 型と SEL 型の引数を持ちます。

    agw
    agw 2011/09/02
    instanceMethodFor/methodForとあるが...?
  • Objective-Cのクラス定義を理解しよう

    Objective-Cのクラス定義を理解しよう:Cocoaの素、Objective-Cを知ろう(3)(1/3 ページ) iPhone用アプリケーション開発で注目を集める言語「Objective-C」。C++とは異なるC言語の拡張を目指したこの言語の基を理解しよう(編集部) 前回の「一番初めのObjective-Cプログラム」では、シンプルなサンプルプログラムに沿って、クラス定義の最低限のルールを解説しました。 今回からは、プログラムの構成要素の1つ1つをより深く掘り下げていきたいと思います。その手始めとして、まずはオブジェクト指向の中核であるクラスの定義方法について解説します。前回までの解説と多少重複する部分もありますが、クラスに含まれる構成要素について、より詳しく見ていくことにしましょう。 なお、今回のサンプルは、説明やファイル作成を簡単にするために、クラスの宣言、クラスの実装、および

    Objective-Cのクラス定義を理解しよう
  • こたつつきみかん » なぜ Objective-C は気持ち悪いのか – クラス編

    なぜ Objective-C は気持ち悪いのか分析してみる企画。前回はコードの見た目について考えましたが、今回はクラスについて考えてみます。 動的な生成のみ Objective-C は、静的なインスタンスを生成することはできず、必ず動的なインスタンスを生成しなければなりません。常にポインタで扱うことになるので、高速な反面、メモリ管理の煩わしさが常につきまといます。通常、インスタンスの生成、破棄は次のようにします。 id object = [[NSObject alloc] init]; [object release]; NSObject に対して alloc メッセージを送り、インスタンスのメモリ領域を生成します。そのあとに、それに init メッセージを適用し、インスタンスを初期化します。ほとんどの場合、alloc, init はペアにして実行します。なぜなら、alloc しても in

  • こたつつきみかん » なぜ Objective-C は気持ち悪いのか – 見た目編

    iPhone OS 向けのアプリケーション開発で注目を浴びている Objective-C 言語ですが、Objective-C についてあまりいい噂を耳にしないので、なぜそうなってしまうのかという分析をしてみることにしました。記事が長くなりそうだったので、今回は見た目編です。 1. 見た目 プログラミング言語において、見た目というものは重要な要素のひとつです。Objective-C 言語はオブジェクト指向言語でありますが、実際のコードをみてみると、ほかのメジャーな言語とはちょっと違った構文がとられています。 メッセージ式 Objective-C では、メソッド呼び出しをメッセージ式で記述します。以下は、anObject に message というメッセージを送る例です。 [anObject message]; [anObject message:arg1]; [anObject messag

  • こたつつきみかん : Objective-Cのメモリ管理

    Objective-C のメモリ管理の話をします。Objective-C ではどのようなルールに基づいてコーディングすればよいかを説明します。 alloc, copy, new を送信したオブジェクトは、それによって生成されたオブジェクトを所有します。また、retain を送信したオブジェクトは、その受信側のオブジェクトを所有します。 所有しているオブジェクトが不要になったら、そのオブジェクトに release メッセージを送信して、所有を放棄しなければなりません。 所有してないオブジェクトに release メッセージを送信して、そのオブジェクトを放棄しようとしてはいけません。 補足して、次のようなことも頭に入れておきましょう。 誰もオブジェクトを所有しなくなったとき、そのオブジェクトには dealloc メッセージが送信され、そのあとメモリから解放されます。 あるオブジェクトを複数のオ