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
保存すべき画像がNSImageクラスのインスタンスオブジェクトとして保持されているものとします。この画像をファイルとして保存する方法について説明します。 TIFFで保存する場合 NSImageは以下のメソッドを持っているため、TIFF形式のデータを得る事は簡単にできます。 - (NSData *)TIFFRepresentation NSDataのwriteToFile:atomically:メソッドを使えば、データを指定したパスにファイルとして書き込む事ができます。atomicallyをYESにしておくと、まず別の名前でファイルに書き込み、エラーが発生しなかった事を確認して指定されたファイル名に書き換えるという二つのステップを踏みます。こうすると書き込み中に何らかのエラーが起こった時に元のファイルを壊さずに済みます。 - (BOOL)writeToFile:(NSString *)pat
+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
ご無沙汰しております。約半年ぶりの記事です。 この間、ずっと iOS アプリ開発の本を書いていました。タイトルは「プロの力を身につける iPhone/iPadアプリケーション開発の教科書」です。 出版社様から書籍執筆のお話を頂いたのが約1年半前でした。やっと発売にこぎつけることができました。2月26日発売です。早ければ22日から書店に並ぶと思います。 本の内容のいくつかは当ブログの記事が元になっています。iOS アプリ開発をはじめられたばかりの方からバリバリ開発している方まで幅広く読める内容になっています。魂込めて書いた自信作ですのでよろしくお願いします。 発売に先駆けて「プロの力を身につける iPhone/iPadアプリケーション開発の教科書」の目次を紹介させていただきます(ついでに元になったブログ記事へのリンクをはっておきます。中身検索的な感じでお使いください)。 iPhone/iPa
Objective-C では、変数に格納されたクラスインスタンスの種類を調べることができるようになっています。 クラス名を文字列で取得する たとえば、id 型の変数 obj に格納されているクラスの名称を、次のように "NSStringFromClass" 関数を使用して、NSString* 型の文字列で取得することができます。 // クラス名を文字列で取得できます。 NSString* className = NSStringFromClass([obj class]); このようにすることで、変数に格納されているクラス名を NSString 型の文字列として、取得することができます。 ここで注意点したいのが、NSString のようなクラスクラスタの場合には、実際に生成されているインスタンスのクラス名が取得できるようです。 たとえば NSString クラスと NSMutableStr
以下の実装にはバグがあります。 @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での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
前提「iPhoneアプリを作りたいなら」ではない。「売れるアプリを作る企画力」や「イケてるUIを作るデザイン力」なしに、「アプリ開発に必要なObjective-Cの技術力」だけあっても意味ない。それでもいい人向け。前提2巷のブクマされている「オススメ本集」は自身の著書や身内の本を薦めるためのポジショントーク的な選書がよくある。溢れかえる「分かりやすさ」を訴える本は必要はない。買うとしても1冊で十分。 分かりやすい本じゃないと身につかないなら、結局作れるものは「その程度」のものに留まる。そして「その程度」を作れる人は既にうじゃうじゃいるからApple税を無駄にするだけ。公式ドキュメント日本語ドキュメント - Apple Developer 日本語化された公式ドキュメント。全てを読むのは難しいが、「Objective-C プログラミング言語」「Objective-Cによるプログラミング」を読め
書誌情報 著者: 坂本一樹 発行日: 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というプログラミング言語があります。 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に出品されますが、
メソッドをクラス間で共有する プロトコルという用語は、比較的ネットワーク用語として利用されていますが、Objective-C に限っては、複数のクラスで実装される同一の名前のメソッドを共有するための、メソッドの宣言のことを指します。 Java 言語や C# 言語ではインタフェースと呼ばれる概念に近い存在です。 プロトコルが利用されるのは、プログラムの設計上の問題で、クラスが特定のメソッドを実装していることを保障するための手段として使われます。 例えば、特定のライブラリ仕様に基づいたクラスは指定したプロトコルに準拠させなければならない、といった関係を築くことができます。 プロトコルが提供するのは宣言されたメソッドだけで、メソッドの実装がどのような処理を実行するかは自由です。 プロトコルを宣言するには @protocol コンパイラディレクティブを用います。 この中で、プロトコルが規約として指
メソッドを関数として呼び出す 実は、Objective-C のメソッドの実態は C 言語の関数と同じです。 普段は隠蔽されていますが、メソッドとは最初の引数に自分のクラスを参照するオブジェクトを受け取る関数なのです。 メソッドの実体が関数であるという事実は、C 言語との親和性が極めて高いことを意味してます。 ピュアな C 言語で記述されたライブラリから Objective-C のメソッドを呼び出したり、オブジェクトを利用することも無理な話ではないのです。 Objective-C のメソッドは、常に IMP 型であると定義されます。 IMP 型は、ヘッダファイルで次のように定義されています。 typedef id (*IMP)(id, SEL, ...); この定義からも分かるように、Objective-C で宣言されたすべてのメソッドは、暗黙的に id 型と SEL 型の引数を持ちます。
Objective-Cのクラス定義を理解しよう:Cocoaの素、Objective-Cを知ろう(3)(1/3 ページ) iPhone用アプリケーション開発で注目を集める言語「Objective-C」。C++とは異なるC言語の拡張を目指したこの言語の基本を理解しよう(編集部) 前回の「一番初めのObjective-Cプログラム」では、シンプルなサンプルプログラムに沿って、クラス定義の最低限のルールを解説しました。 今回からは、プログラムの構成要素の1つ1つをより深く掘り下げていきたいと思います。その手始めとして、まずはオブジェクト指向の中核であるクラスの定義方法について解説します。前回までの解説と多少重複する部分もありますが、クラスに含まれる構成要素について、より詳しく見ていくことにしましょう。 なお、今回のサンプルは、説明やファイル作成を簡単にするために、クラスの宣言、クラスの実装、および
なぜ Objective-C は気持ち悪いのか分析してみる企画。前回はコードの見た目について考えましたが、今回はクラスについて考えてみます。 動的な生成のみ Objective-C は、静的なインスタンスを生成することはできず、必ず動的なインスタンスを生成しなければなりません。常にポインタで扱うことになるので、高速な反面、メモリ管理の煩わしさが常につきまといます。通常、インスタンスの生成、破棄は次のようにします。 id object = [[NSObject alloc] init]; [object release]; NSObject に対して alloc メッセージを送り、インスタンスのメモリ領域を生成します。そのあとに、それに init メッセージを適用し、インスタンスを初期化します。ほとんどの場合、alloc, init はペアにして実行します。なぜなら、alloc しても in
iPhone OS 向けのアプリケーション開発で注目を浴びている Objective-C 言語ですが、Objective-C についてあまりいい噂を耳にしないので、なぜそうなってしまうのかという分析をしてみることにしました。記事が長くなりそうだったので、今回は見た目編です。 1. 見た目 プログラミング言語において、見た目というものは重要な要素のひとつです。Objective-C 言語はオブジェクト指向言語でありますが、実際のコードをみてみると、ほかのメジャーな言語とはちょっと違った構文がとられています。 メッセージ式 Objective-C では、メソッド呼び出しをメッセージ式で記述します。以下は、anObject に message というメッセージを送る例です。 [anObject message]; [anObject message:arg1]; [anObject messag
Objective-C のメモリ管理の話をします。Objective-C ではどのようなルールに基づいてコーディングすればよいかを説明します。 alloc, copy, new を送信したオブジェクトは、それによって生成されたオブジェクトを所有します。また、retain を送信したオブジェクトは、その受信側のオブジェクトを所有します。 所有しているオブジェクトが不要になったら、そのオブジェクトに release メッセージを送信して、所有を放棄しなければなりません。 所有してないオブジェクトに release メッセージを送信して、そのオブジェクトを放棄しようとしてはいけません。 補足して、次のようなことも頭に入れておきましょう。 誰もオブジェクトを所有しなくなったとき、そのオブジェクトには dealloc メッセージが送信され、そのあとメモリから解放されます。 あるオブジェクトを複数のオ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く