iPhone で画面イメージを取得する
前回と似たネタ。
#import <QuartzCore/QuartzCore.h> - (UIImage*) buildImageFrom: (UIView*)view { UIGraphicsBeginImageContext(view .bounds.size); [view.layer renderInContext:UIGraphicsGetCurrentContext()]; UIImage* viewImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return viewImage; }
このとき、取得できる UIImage は autorelease 済みなので、 release すると死ねる。
今回は公式公開の API なので、胸を張って Apple に出せるな。
import はあってもなくてもよい*1。
*1:無い場合は、renderInContext で warning が出る
iPhone で画面イメージを取得する
何の事は無いこれだけ。
[UIImage imageWithCGImage:UIGetScreenImage()];
かなり地獄を見た。
iPhone でXMLのDOM解析を行う
デフォルトの NSXMLPerser がシーケンスアクセスしかできなくてとても扱いづらい。
かといって、根っこの libxml2 は高性能で早くて DOM 使えるのにドキュメントが腐ってて扱いにくい。
で、探して見っけたのがこれ
http://code.google.com/p/gdata-objectivec-client/
使い方は、以下の通り。
- Frameworks を右クリック、追加、既存のフレームワーク
- /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.2.1.sdk/usr/lib/libxml2.2.dylib をさくっと選択。
- ターゲットのバイナリをライブラリにリンクに、libxml2.dylib をドロップ。
- ターゲットを開いて、ビルドタブを開き、「リンク」「他のリンカフラグ」に「-lxml2」を追加。
- そのまま、「検索パス」「ヘッダ検索パス」に「/usr/include/libxml2」と「/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.2.sdk/usr/include/libxml2」を追加。
- http://code.google.com/p/gdata-objectivec-client/ このへんからライブラリ落としてきて解凍
- GDataTargetNamespace.h, GDataDefines.h, GDataXMLNode.h, GDataXMLNode.m をプロジェクトにコピー
これでとりあえず準備完了。
以下サンプル
続きを読む初の Mac ソフト作ってみる
公式チュートリアルも含めて悶絶したので、ここに手順をメモしておく。
- XCode 起動
- Model を適当に作成する
内容はとりあえずこんな感じ。
#import <Cocoa/Cocoa.h> @interface HelloModel : NSObject { int count,value; } @property(readwrite) int count,value; -(int)execute:(int)mod; @end
実装もこんな感じ
#import "HelloModel.h" @implementation HelloModel @synthesize count,value; -(int)execute:(int)mod { return self.count * self.value % mod; } @end続きを読む