When your iPhone app crashes with 'BAD ACCESS' you're in trouble - a memory bug where you tried to call a method on a object that was already deleted. Instruments has support for NSZombie - a feature that makes it easy to find the source of the bug by showing you a full history of every alloc, retain, release, and autorelease of the object that caused the crash! Wow. Here's how: Basic steps are: R
UIWebViewのスクロールが遅くてイラつきます。 実はこれUIWebViewが重いのではなくて、そういう設定になっているだけです。 デフォルトでは UIWebView 内の UIScrollView の decelerationRate が UIScrollViewDecelerationRateFast に設定されています。 それを UIScrollViewDecelerationRateNormal に変更すれば良いです。 幸いiOS5からはUIWebView 内のUIScrollViewがプロパティとして追加されたため 以下のようにするだけでスクロールの滑りがUITableViewのデフォルトと同等になります。 self.webView.scrollView.decelerationRate = UIScrollViewDecelerationRateNormal; iOS4でも
同一wifi内のiPhone同士で通信しあうにはBonjourを使うと簡単にできるらしい。簡単にっていうのはアドレスの割当やらホストの解決、公開サービスの検索なんかを自動的にやってくれるみたいだけど、それ以外でも結構大変だったのでその記録。 主な手順としては、 サーバ側がNSNetServiceを使ってサービスを起動 クライアント側はNSNetServiceBrowserを使ってサーバとサービスを検索 見つかればNSInputStreamやNSOutputStreamを使ってデータをやり取り という感じで結構簡潔。 まずはプロジェクトの準備。新規プロジェクトをTab Bar Appricationから作成します。左のタブをServer(ServerViewController)、右のタブをClient(ClientViewController)として進めます。 ServerViewCont
例えば UIKeyboardWillChangeFrameNotification の通知を受け取りたい。普通に NSNotificationCenter へ登録すればいいのだが、iOS 4 でこれを実行するとクラッシュする。 この通知は iOS5 から導入された新しいもので iOS4 に無いのが原因。この通知名は NSString* const で定義されている。 // UIWindow.h UIKIT_EXTERN NSString *const UIKeyboardWillChangeFrameNotification __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_5_0); そこでこの定数の有無をチェックしたい。調べると Appleがドキュメントを出していた。 SDK Compatibility Guide: Using SDK-Based
最近、無料アプリや無料ゲームにアプリ内課金を設置してユーザにアイテムを購入してもらうタイプのものが増えています。App Store トップセールスのうち半数以上がこの無料 + アプリ内課金で占められています。今後アプリ内課金は iPhone/iPad アプリで儲けるための必須の機能になると言っても過言ではありません。 今回はアプリ内課金(In-App Purchase)のプログラミングについて StoreKit フレームワークの基本的な使い方から失敗しないためのポイントまで説明していきます。 販売できるアイテムの種類は5種類 アプリ内課金で販売できるアイテムの種類は5種類あります。 Consumable 消費アイテム。ユーザがアイテムを使うと無くなる。例えばシューティングゲームの弾丸やコイン落としゲームのコインなど。同じアイテムを何回でも購入可能 Non-Consumable 非消費アイテ
2011年07月13日12:44 カテゴリiPhone豪(たけし) [iPhoneアプリ]UITableViewのスクロールを滑らかにする こんにちは、豪(たけし)です。 UITableViewでの縦スクロールが妙に重いケース、良くありますね。 今回はHotel.jpのiPhoneアプリで縦スクロールをスムーズに高速に動かすために 行っていることをご紹介します。 Hotel.jpアプリのホテルの検索結果画面では、1つのセルの中にテキストラベルが 15個+画像2つ、しかもテキストラベル14個は画面左のタブを押すと横移動も するといういかにも重そうなインターフェースなのですが、iPhone4であれば スムーズに縦スクロールします。 検索結果画面 動画(30~40秒目が検索結果画面です) ここ苦労したんです・・・。実装方法をざっとお話します。 最初は楽をしてやろうとUITableViewCell
スタンフォード大の iPhone Application Programming Lecture 16 で紹介されていた、テーブルのセル内に URL のリンクを入れて、リンクをタップした時に UIWebView に表示する方法です。 セルに UIWebView を入れてその view に HTML でリンクを表示、UIWebView のデリゲートを設定しておき、リンククリック時には Web を表示するコントローラ(ここでは WebViewController )に URL を設定します。 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"Cell"; UITab
C言語も知らなかったけど、iPhoneアプリ開発が出来るようになるまでにお世話になった11冊! 2011年8月24日 in iPhone, Objective-c 私がiPhoneアプリを作りはじめたのは、2009年の11月でした。C言語すらまともに使ったことがなかったわけですが、当時はまだインターネットでも開発についての情報が少なく、ほとんどは海外サイトをみて翻訳して調べるしか手がありませんでした。 ですので、最初はiPhoneアプリの開発本を読みあさっていたわけですが、様々な本を読むことで基本的な知識を身につけることが出来ました。今回はiPhoneアプリ開発本をご紹介したいと思います。 [基礎編] iPhoneアプリ開発の基礎 やさしいC プログラム経験が全くない方におすすめです。C言語の本ですが、オブジェクトやインスタンス、クラスについてなどなど、内容が読みやすく、基礎からしっかり
スワイプの処理 RootViewController にUIGestureRecognier を左右両方向について登録しておく。 - (void)viewDidLoad { [super viewDidLoad]; : UISwipeGestureRecognizer* swipeGesture = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(didSwipeCell:)]; swipeGesture.direction = UISwipeGestureRecognizerDirectionRight; [self.tableView addGestureRecognizer:swipeGesture]; [swipeGesture release]; swipeGesture = [[UIS
UIWebView のインスタンスに delegate を指定している場合は以下のように release する前に delegate に nil をセットする必要があります。 - (void) viewDidLoad { webView = [[UIWebView alloc] init]; webView.delegate = self; .... } - (void)dealloc { webView.delegate = nil; [webView release]; } アップルのマニュアルにも以下のように書かれています。 Important: Before releasing an instance of UIWebView for which you have set a delegate, you must first set its delegate property to
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く