二郎は はま寿司の夢を見るか? 近所に はま寿司 ができた。 近所には ま寿司 ができた。に見えないように空白を入れなくてはいけない。 ここではきものをぬいでください。 ところでいきなり脱線しまくるのだが昔のゲームの「全部の文字を平仮名にした時に逆に解釈が広がってエモか感じる」みたいなの…

二郎は はま寿司の夢を見るか? 近所に はま寿司 ができた。 近所には ま寿司 ができた。に見えないように空白を入れなくてはいけない。 ここではきものをぬいでください。 ところでいきなり脱線しまくるのだが昔のゲームの「全部の文字を平仮名にした時に逆に解釈が広がってエモか感じる」みたいなの…
iOS SDKは年々進化を続けているのはイイんだけど、後方互換性は一部犠牲になっている。他のプラットフォームに比べると数倍マシだとは思うけどね。ともあれ、最新OS最新モデルに対応しつつも、以前のOSや機種を切り捨てられない場合も少なくない。しかも初期のSDKで作成したプロジェクトをアップデートし続けるのもスッキリしないので、最新SDKから新しいプロジェクトを作ったりすると、それなりに問題が発生する。 そこでiOS SDK 5.1 (Xcode 4.3.2)で作ったプロジェクトを初代iPhoneの最終OSであるバージョン3.1.3に対応させる方法を書いておくね。ここではテンプレートとしてUtility Applicationを用い、iPhone/iPad両用のユニバーサル・アプリを作ることにします。もちろん、ARCはオフ、Storyboardも使えませんよ。 まず、何はともあれDeploym
このドメインは お名前.com から取得されました。 お名前.com は GMOインターネットグループ(株) が運営する国内シェアNo.1のドメイン登録サービスです。 ※表示価格は、全て税込です。 ※サービス品質維持のため、一時的に対象となる料金へ一定割合の「サービス維持調整費」を加算させていただきます。 ※1 「国内シェア」は、ICANN(インターネットのドメイン名などの資源を管理する非営利団体)の公表数値をもとに集計。gTLDが集計の対象。 日本のドメイン登録業者(レジストラ)(「ICANNがレジストラとして認定した企業」一覧(InterNIC提供)内に「Japan」の記載があるもの)を対象。 レジストラ「GMO Internet Group, Inc. d/b/a Onamae.com」のシェア値を集計。 2024年5月時点の調査。
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
メモリ管理の大まかな原則 C言語と共通の部分について、メモリ管理で気をつけることは特にありません。Cで気をつけることと共通です。 自分がmalloc()で確保したメモリは忘れずfree()で開放しましょうということだけです。従って、多くの場合に問題になるのはObjective-C固有の部分です。 Objective-Cのオブジェクトはretain countというものを持っています。生成すると0から1になります。 そのオブジェクトに関連付けられている変数名でretainをすれば、カウントが1増えます。 releaseをするとカウントが1減ります。run loopと呼ばれるシステムへの応答処理へ入った時、 このカウントが0になっているものはメモリ上から消えるようになっています。 autoreleaseとした場合には、適当と思われる部分で自動的に開放されるので、自分でreleaseを行う必要は
iphone開発ではガベージコレクションは使えないため、alloc/releaseを使って自分でメモリ管理を行う必要があるのはどの入門書にもあります。また、それを便利にするための NSAutoreleasePool というのがあり、それもよく使います。しかし、この NSAutoreleasePool はどこまで面倒を見てくれるイマイチよく分からなかったため調べてみることにしました。 はじめに NSAutoreleasePoolのおさらい。NSAutoreleasePoolのインスタンスを alloc 、init で作成して使いますが、iphoneの場合、プールが最初に作られるので明示的にプールを生成しなくても使えます。プールにオブジェクトを登録するには NSObjectの autorelease メソッドを使います。 NSAutoreleasePool *pool = [[NSAutore
Objective-C のコードを書いていると、理解しているはずなのに、ときどきわからなくなる。 そう、retain、release、autorelease の3兄弟だ。 この例はとってもシンプル。何をしたいのか理解できないが。 - (void) hoge: (id)obj { UIView *aView = [[UIView alloc] initWithFrame:CGRectZero]; [myView addSubView:aView]; [self hoge:obj]; } どうやら UIView のインスタンスを作って、myView に追加したいらしい。 だけど、このコードだと、aViewがメモリリークする。 2行目で、aViewのretainCountが1になる。 3行目で、myViewがaViewを使うことになるので、aViewのretainCountが2になる。 そして、
大量のデータ処理等、時間のかかる処理をメインスレッドで実行してしまうと、UIが固まってしまってよろしくありません。これを防ぐためには、時間のかかる処理は別スレッドをつくってそちらで行うようにします。Cocoaにはこれを非常に簡単に実現する方法が用意されていますが、いくつか気をつけるべき点があったので書いておきます。 1.performSelectorInBackground:withObject:メソッドを呼ぶ NSObjectにはperformSelectorInBackground:withObject:というメソッドが用意されていて、バックグラウンドで処理を行うメソッドのセレクタを指定するだけで、非常に簡単に別スレッドで実行してくれます。 例えばこんな感じ。 - (void)runVeryHeavyMethodInBackground { [self performSelectorI
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。 3.0になったことによる、UITableView関連での変更点はUITableViewCellの変更だけのようです。これまではセルそのものがUILabelのようにtextを持っていたのですが、3.0以降ではセルは2種類のラベルを持ちます。textLabelとdetailTextLabelです。従って、3.0専用にアプリケーションを作る場合には、今までとは少しだけセルへのテキストの渡し方が変わります。これまで「セルの変数名.text」だったのが、「セルの変数名.textLabel.text」や「セルの変数名.detailTextLabel.text」になります。また、セルの作成時の宣言がフレームからスタイルに変更されています。スタイルは4種類の中から選びます。文章で書いていても分か
iPhone, iPod touchアプリ開発するときにApple Developer Centerからサンプルをダウンロードして参考にしながら開発しているけど、どのサンプルがどんな感じか忘れてしまうのでメモ。一覧でまとめたサイトはないものか・・・。 実際に動かしたものと(個人的に)参考になりそうなものだけ。順不同 UICatalog UIコンポーネントの一覧。 AppPrefs インフォメーション、設定画面への切り替え方 CoreDataBooks Core Dataを使ったアドレス帳。新規登録、削除、編集など基本的なことが分かる QuickContacts 上のCoreDataBooksを進化させてアドレス帳として完成度を高めた感じ。起動直後のメニューはplistファイルを使っている。 SimpleDrillDown ナビゲーションの使い方。データ部分がちゃんとクラスに別れている。 D
UITableViewなどのスクロール系のViewでサムネイル画像を出す場合、下記のような記述ではメインスレッドで画像がロードされるため、ユーザーのUI操作に影響が出てしまいます。 NSURL *url = [NSURL URLWithString:@"URL"]; NSData *data = [NSData dataWithContentsOfURL:url]; [instanceOfUIImageView setImage:[[UIImage alloc] initWithData:data]]; こういう場合は非同期通信を行うのが定石だと思いますが、参考になるサンプルがあまり無かったので試しに作ってみました。UIImageViewを継承したUIAsyncImageViewクラスです。 UIAsyncImageView.h 画像URLの指定と、通信中止用のメソッドのみ定義しています。
UITableViewCell の背景を画像にする場合、UITableViewCell の backgroundView プロパティに UIImageView をセットします。しかし、これだけでは問題が発生してしまうことがあります。 今回は、その問題を乗り越えて、UITableViewCell の背景を画像にする方法を紹介します。 以下のコードは、UITableView の dataSource オブジェクトが UITableViewCell を返すところです。UITableViewCell の背景を画像にしたいので、backgroundView プロパティに UIImageView をセットしています。 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)
自転車やMac・AppleScript、映画・小説やドラマのレビュー、備忘メモ・クイズなどを置いています。 iOS上で、web上の画像を取り込んで、表示してみます。 取り込む画像は こちら です。 「New project」を作成し、「View-based Application」を選びます。 プロジェクト名を入力します。 xibファイルをクリックして、WebView を配置したら、次にヘッダファイルに変数を設定します。 ヘッダファイル: #import <UIKit/UIKit.h> @interface webImageViewController : UIViewController { IBOutlet UIImageView *myImageView; } @end xibファイルに戻って、ヘッダファイルに設定した変数と、WebView を接続します。 xibファイル: ソースフ
Xcode4からは、IBとXcode(ソースとヘッダ)をマウス操作で接続できるようになりました。この機能は、私のお気に入りのひとつです。かなりの時間短縮に貢献してくれています。 アシスタントエディタを使う Xcodeでnibファイルを表示したら、アシスタントエディタを使うのがベストです。 アシスタントエディタは、Xcode右上にあるAssistant Editorボタンを押すか、メニューから”View->Assistant Editor->Show Assistant Editor”を選択することで表示可能です。 さらに、表示するファイルを”Automatic”としておきましょう。これで、メインエディタに表示中のnibファイルに対応したヘッダファイルが自動的に表示されます。 まずはOutletを接続 では、実際にviewの上に新しいボタンを設置してみましょう。ボタンを追加したら、Contr
先日App StoreからリリースされたXcode 4.3ですが、個人的には結構驚きな変更がありました。ARCを利用している場合に、プロパティのデフォルト属性(オブジェクトの所有に関する属性)が変更になっているではないですか。 これまでのデフォルト属性はassign オブジェクトの所有に関するデフォルト属性は、これまでassignでした。したがって、オブジェクトのプロパティで属性指定を行わないと警告が出ていたと思います。 また、Xcode 4.2 + ARC環境では属性指定は必須でした。これは、readonlyプロパティのときも同様です。属性を指定しないとエラーとなります(参考:[iOS5] ARC : プロパティ属性と使い方)。エラーになるのは、インスタンス変数生成時にどの所有修飾子をつけていいか分からないためです。 Xcode 4.3 + ARCでのデフォルト属性はstrong Xco
さて、じゃんけんゲームアプリ作成の続き。 iPhoneアプリを作ってみよう:第1回 じゃんけんゲーム(#3.IB+Xcode連携編) - もとまか日記 ここで、jankenViewController.hってファイルに @property って記述があります。 ふんふん、コレ前に見たことあるぞ。 Objective-Cのクラス定義を理解しよう - @IT ここで読んだな。 はて? @property(nonatomic , retain) 以下略 なんてあるけど、nonatomicってなんだ? と思い、調べてみました。 Objective-C 2.0プログラミング言語: プロパティの宣言と実装 このページには、 nonatomic 合成されるアクセサが非アトミックになるように指定します。 デフォルトでは、合成されるアクセサはすべてアトミックです。これは、マルチスレッド環境でプロパティへの堅
Not your computer? Use a private browsing window to sign in. Learn more about using Guest mode
(2011-12-01 追記あり)UIApplicationDelegateの呼び出しが iOS5 から変わった件。 Task Completion を使った iOS4 でのバックグラウンド実行サンプルを作ってみた。 サンプル 実行するとキューにたまった 30個のデータが順番に処理されてテーブルから消えていく。 処理は GCD を使い別スレッドで実行される。右上の[+]ボタンを押すとキューへデータが追加されていく。途中でホームボタンを押してアプリを切り替えても Task Completion によって処理は停止すること無く実行され続ける。わかりやすいようにアプリのアイコンバッヂに残タスク数を表示してみた。 バッジの数字は時間と共にカウントダウンされていくので処理が行われていることが確認できる。 Task Completion とは? Task Completion は、iOS4 から導入さ
Can Reflexology Kick Your Allergies to the Curb? What is reflexology? Reflexology is a complementary therapy that involves applying pressure to specific points on the feet, hands, or ears. These... Audi A6 Black Edition: When Darkness Met Performance Striking Black Accents The Audi A6 Black Edition takes the sophisticated presence of this executive saloon and amplifies it with a dose of... Scrub-a
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く