URL の分かっているALAssetをキューの流れを崩さずに取得する方法

iOS4でiOS SDKにも追加されたBlocksは、いまでは多くのiOS標準ライブラリで使われています。バックグラウンドで作業を行わせて、作業が終わったときのコールバックや結果を取得する事が出来ます。確かに、スムーズなUIを実現するのに便利なのですが、ときどき、プログラムの流れを崩したくないので、順序立てて動作してほしいと思うときがありますね。例えば、ALAssetで画像を取得するときも、画像を順番にアップロードしたいなどの要望があります。そのときにALAssetをsyncronizeに取得するメソッドを書きました。
“URL の分かっているALAssetをキューの流れを崩さずに取得する方法” の続きを読む

「iPhoneアプリ開発エキスパートガイド iOS 6対応」を執筆しました

追記 2013/3/21:詳細の目次情報を別エントリに追加しました。「iPhoneアプリ開発エキスパートガイド iOS 6対応」詳細目次の紹介 | Zero4Racer PRO Developer’s Blog

iPhoneアプリ開発エキスパートガイド iOS 6対応

長い執筆期間が終わってもう少しで発売になります。わたしを含むiOS5プログラミングブックの執筆陣による、iOS6の最新機能を含む活用方法が書かれた書籍です。

Amazonからの内容紹介と目次はこちらです。

“「iPhoneアプリ開発エキスパートガイド iOS 6対応」を執筆しました” の続きを読む

iOS6 でのタイムアウト挙動の改善とAFNetworkingでのタイムアウトの設定方法

備忘として記録しときます。iOSでNSURLRequestを使用して、PostでPostBodyを設定したときに、timeoutIntervalを設定たらタイムアウトが240秒固定になってしまう以下に設定出来ない仕様(バグ)があったのですが、iOS6では改善されているようです。ちなみに標準のタイムアウトは60秒です。
iphone – NSURLConnection timeout? – Stack Overflow
それをふまえて、AFNetworking でのタイムアウトの設定方法です。
“iOS6 でのタイムアウト挙動の改善とAFNetworkingでのタイムアウトの設定方法” の続きを読む

Objective-C の instancetype キーワードが面白い + typeof(self)の考察

Appleのサンプルコード、iAdSuite を見ていたら見慣れない表現が出てきたので、調べて見ました。

@implementation TextViewController

- (instancetype)init
{
self = [super initWithNibName:@"TextViewController" bundle:nil];
if (self) {
//...
}
return self;
}

こんな感じ、”- (instancetype)init”と書いているのを見て、なんで”-(id) init”じゃないのかなと思いました。
“Objective-C の instancetype キーワードが面白い + typeof(self)の考察” の続きを読む

[iOS6] AutoLayoutを使用すると、viewWillAppear: でframeが決定しないので注意

iOS6のサンプルプロジェクトを使ってて挙動が違ったのでメモ。iOS5までのAutoResizingの場合、viewDidLoad時は正しいサイズがかえってこないという現象がありました。viewDidLoad後に、ツールバーのサイズなどを含めてAutoResizingを行うためです。AutoLayoutの場合、viewWillAppear後に、viewの位置決定が行われるようです。
“[iOS6] AutoLayoutを使用すると、viewWillAppear: でframeが決定しないので注意” の続きを読む

UIWebView のJSから、ObjCネイティブの関数を呼び出す方法(Alertでドメイン名をださない方法)

基本的なことですが、UIWebViewからdelegateを使って機能を呼び出す簡単な方法があったので共有します。こちらのリンクからの情報です。
iphone – How to change a javascript alert box title into an UIWebView? – Stack Overflow
“UIWebView のJSから、ObjCネイティブの関数を呼び出す方法(Alertでドメイン名をださない方法)” の続きを読む

iOS5では使えない…Xcode4.5の新機能、StoryboardでのContainer Viewが便利!

追記:テストの際の勘違いで、iOS5ではクラッシュしてしまいます。iOS5でテストしたつもりのデバイスが、既にiOS6にアップしていました。間違った情報を流してしまい、申し訳ありません。指摘して下さった、内田宏基@東京都 (_danwaneji)さんにも感謝します。


Xcode4.5使っているでしょうか?iOS6/iPhone5対応のために使わざるを得ないという方も少なくないと思います。多くの新機能は、iOS6以降のみの機能のため、iOS5対応アプリででは、一部しか使えなかったり、条件判断して使わなければいけなかったりします。今回は、Xcode4.5の新機能で、iOS5プロジェクトでも使える、StoryboardでのContainer Viewについて紹介します。
“iOS5では使えない…Xcode4.5の新機能、StoryboardでのContainer Viewが便利!” の続きを読む

ARC+Blocks+llvm4.0時代のコード記述作法

はじめに

ARC、Blocks、llvm4.0 Modern Objective-Cと、Objective-Cの記述方法はどんどんん変わっています。コードの記述量が減ったり、分かりやすいコードを書くことが出来る様になって来たものの、リーク、EXC_BAD_ACCESS(解放されたメモリにアクセスすることによるクラッシュ)が発生する危険があります。この記事では、2012年8月のリリースされた機能の時点で、わたしが採用している書き方のルールを紹介します。
“ARC+Blocks+llvm4.0時代のコード記述作法” の続きを読む

今日からライオンでも使える!Xcode4.4 Modern Objective-C Syntaxでコードをきれいにする方法

Mountain Lion発表とともにリリースされたXcode4.4。OSX Lionでも使える様になっています。Xcode4.4から、llvm (コンパイラ)のバージョンが4.0になっています。

それによってObjective-Cの書き方にかなりの改善が加えられたので、それを簡単にまとめておきたいと思います。これらの改善は、iOS6に関係なく動作するので、いま作っている、iOS5用のコードにも使用出来ます。
“今日からライオンでも使える!Xcode4.4 Modern Objective-C Syntaxでコードをきれいにする方法” の続きを読む