iPhone SDKの教科書

iOSBook Icon
【お知らせ】iOS 4とXcode 4に完全対応した電子書籍「iOSの教科書」を刊行しました。今後は同書をご利用いただければ幸いです。
【書籍購入サイト】
【書籍サポートサイト】

(2011/07/20)


【お知らせ】筆者による「iPhone SDKの教科書」サポート・サイト(本サイト)の更新を終了します。今後は出版社のサポートをご利用ください。(2011/07/08)

【お知らせ】本書に掲載したサンプル・コードはiOS SDK 4.0やiPhone 4で、そのまま利用できます。(2010/07/28)
【お知らせ】本書に掲載したサンプル・コードはiPhone SDK 3.0やiPhone 3GSで、そのまま利用できます。(2009/06/11)

iPhoneアプリケーション開発の第一人者が指導するiPhone SDKの教科書です。iPhoneアプリケーションの開発に初めて取り組む人を対象に、アイディアをアプリケーションに反映するための考え方や制作プロセスについて、具体的な事例を使って解説します。

iPhone SDKのインストールから、プログラミングに使用するC言語やObjective-Cの概要を説明し、実際にカウンターやゲームなどのアプリケーションを作成する手法までを網羅。タッチスクリーン機能やアニメーション、乱数によるランダム移動、加速度センサー、効果音の再生、ビューアイテムの作成、ローカライズ方法など、アイデアを実現するさまざまなテクニックを学ぶことができます。

iphone-sdk-textbook

書名:iPhone SDKの教科書
副題:Cocoa Touchプログラミング、最初の一歩
著者:赤松正行
仕様:B5変判、1色、376ページ
価格:2940円(税込)(本体2800円)
発売:2009年3月19日
発行:秀和システム
ISBN-10: 4798022322
ISBN-13: 978-4798022321

目次
正誤表(第1刷)
正誤表(第2刷)
ダウンロード
出版社の書籍紹介ページ
インターネット書店一括検索

ipst0-5-in-app-store

※本書に掲載したサンプル・アプリケーションはApp Storeからダウンロードすることができます。赤松正行のすべてのアプリケーションが表示されますので、その中でiPST#で始まる名称のアプリケーションが本書に掲載したサンプル・アプリケーションです。

iPhone SDKの教科書」への92件のフィードバック

  1. イラストレーターのファイルがダウンロードできるとうれしいです。

    サンプル開いたらpngだけだったので残念。

  2. なるほど、です。ただ、イラレ・ファイルはデザイナーさんに著作権がありますので、公開されるか否か問い合わせてみます。

  3. デザイナーさんの承諾を得て、ダウンロードのページで公開しました。よろしくお願いします。

  4. ピンバック: iPhone SDK の教科書 赤松正行

  5. この本を参考に勉強中の初心者です。

    そこで、質問なのですが
    ①サンプルのような画像を作るには
    どのようなソフトが必要なのでしょうか。
    また、
    ②画面上を動くモノ(例えば蟻が歩くなど)を
    作るのに必要なソフトって何になりますか。

    画像自体は他の方が作成しているようですが
    分かる範囲で教えて頂けると助かります。

  6. サンプルのデザイナーさんは画像作成にIllustratorを、最終調整にPhotoshopを使われています。(2)のアニメーションもできます。難点は高価なことと、高機能過ぎて使いにくいかもですね。

  7. ピンバック: IPHONEWATCHERS.COM » Blog Archive » iPST#0-Counter

  8. この本を参考に勉強中の初心者です。
    質問がありますがページ203の手順③をしたいですが
    私のものでは見つけませんでした。
    「Apple Iphone OS 2.2.1」で試していますが

    手順③のキー「UIStatusBarHidden」という項目はないです。

    ちなみにぺーじ186の手順⑥で「UIPrerenderedIcon」という項目もないです。

    どうすれば良いですか?
    教えていただきたいです。

    よろしくお願いいたします。
    以上。

  9. キーボードでタイプして入力してください。メニューにはありません。単に「入力してください」と書いているので、分かりにくかったかもしれませんね。次に改訂する機会があれば、工夫したいと思います。

  10. 一日での早く自分でアプリを作って参加したがっていた、
    初心者の私にはこの書籍は本当に救世主でした。
    3.0に対応していなければ、アップルストアで公開できないとメールが来ましたが、
    2.0で作り続けていると駄目なんでしょうか?
    対応さくあれば教えてください。

    3.0対応の書籍でれば購入希望しています。

  11. 現時点ではSDK 2.xで作って、OS 3.0Betaで動作確認すれば、いいんじゃないんですか?(間違ってたらゴメン)

  12. ピンバック: akalogue » 辻褄時計、リリース

  13. 「iPhone SDKの教科書」の初心者にもわかりやすい説明が気に入り、昨日さっそく買って読んでいます。

    質問なのですが、
    P.32の図3-4「HelloWorld」フォルダ内容の場所が見つからないのですが、
    「HelloWorld」は教科書にあるようにAppleが提供しているサンプル・コードとはいえ、
    自分で「HelloWorld」という名前で新規プロジェクトを作成してから、生成されるものでしょうか?

    もしその場合、教科書ではどのテンプレートを選択すればよいのかなどの手順は省略されておりますが、
    ふさわしいテンプレートは「Window-Based Application」でよろしいでしょうか。

  14. ありがとうございます。無事ダウンロードできました。

  15. ピンバック: 簡単GameKit-P2P « akalogue

  16. 貴書、大変参考になりました。内容、実用性、デザイン等すべてにおいて満足しております。有り難うございました。

    さて、一点ご質問がございます。

    第2部の実機テストは貴書の最重要部分の1つかと思われます。本家サイトの Program Portal の説明に従い、プロビジョニングファイル作成やその他必須作業を3回行ったのですが毎回下記のエラーが出て先に進みません。

    Forumでも質問をポストし有効な回答を待っている状況ですが、とにかく他の読者の方にも私と同じような問題に直面して困っているかたがいるのではないかと拝察いたします。

    もし、なにかお気づきの点やご助言等がございましたらご教授いただきたく、よろしくお願い致します。

    1. Error
    Message
    CodeSign error: code signing is required for product type ‘Application’ in SDK ‘Device – iPhone OS 3.1.2’
    Place
    Line Location Tool: 0

    2. Other Info
    iPhone OS 3.1.2 (7D11)
    Mac OS X 10.5.8
    Language: Japanese

  17. Provisioning等はNDAの関係で詳しく説明できないので申し訳ないです。P.21からやP.190からの手順を再確認していただいているとは思いますが、エラー・メッセージは正しいProvisioning Fileが設定されていないってことです。図6-29や図6-31あたりの画面キャプチャをどこかにアップロードしていただけると、何かわかるかもしれません。

  18. 開発フォーラムでさっそく回答が寄せられ、コード署名IDの選択(P194:図6-29)をただしく行うことで実機テストが成功いたしました。わたしもまだ経験が浅いためウェブと本をいったりきたりしている間に、迂闊にも本手順をスキップしてしまったのかもしれません。お手間をおかけして済みませんでした。

  19. ピンバック: iTunes Connectの言語問題 « akalogue

  20. わかりやすい内容、実用的なサンプル、アプリや本のデザインの素晴らしさについては先般お礼申し上げたばかりですが、もうひとつ感心させられたのが、サンプルアプリの「改良・発展」というビジョンが提示されていることです。モチベーションを高め応用力をつけさせる配慮から本著に込められた著者の教育にたする考えやフィロソフィーが伝わってくるようです。

    その「改良・発展」についてですが、Objective-Cに熟達された読者はともかく、私のようなビギナーにはハードルが高くて全くお手上げな状態です。欲を言わせていただければ、詳細なヒントですとか模範解答(プログラムコード)をご提供いただければうれしい限りです。ですが、コストの問題等もあるでしょうから、無理は申し上げられませんが、続編や改版の際に本件をご考慮いただければ有り難いです。貴書の価値もさらに上がるかと愚考する次第です。

  21. KiDさん、コメントありがとうございます。ヒントではないのですが、難易度を以下にまとめています。Aランクから始められると良いと思います。また、読者の方が改良・発展されたコードをアップされるといいな〜と思っていますので、ご連絡いただければこのページにリンクを掲載させていただきます>皆さま(他力本願) http://akamatsu.org/aka/?p=2647

  22. はじめまして。「iPhone SDKの教科書」でiPhoneの手習いを始めました。P59にあるコード

    NSLog(@”index = %d rate = %f”, index, rate);

    を挿入すると、error:’rate’ undeclared (first use in this function) となってしまいます。何故でしょうか?
    HelloWorldは、http://developer.apple.com/iphone/library/samplecode/HelloWorld_iPhone/ からダウンロードし、Xcodeのバージョンは3.1.4です。Simulator – 3.1 | Debugで実行しました。

    rateが未定義ってことでしょうか?お時間ありましたら、ご教授いただければ幸甚です。

  23. c-geruさま、
    該当箇所ではフォーマット文字列の例として挙げているので、コードを記述した箇所に該当する変数が定義されていなければ、ご指摘のようなエラーとなります。整数や実数が使われている箇所でお試しいただければと思います。変数名が異なっている場合は、変数名も合わせる必要があります。よろしくお願いします。

  24. Akamatsuさま

    早速のご回答ありがとうございます。やはり未定義だったんですね。前段(P58)でコードの追加あったので、ココもそのまま動くコードだと思いこんでいました。スッキリと先に進めます。現在第二部に入りました。疑問が出てきましたら、またよろしくお願いいたします。

    ありがとうございました。

  25. はじめまして。

    上のリンク先からダウンロードできません。
    クリックするとiTunesは開きますが「全てのアプリケーション」とだけ表示されます。
    どのようにすればよろしいでしょうか?

  26. garagekitさま、
    すみませんでした。以前は「iPST#」で検索するようにしていたのですが、iTunesでのURLの取り扱いが変わったようで、うまく動作しません。暫定的に私のアプリケーションをすべて表示するようにしました。お手数ですが、iPST#で始まるアプリケーションをダウンロードしてください。よろしくお願いします。

  27. 初めまして。
    先日からimacとSDKの教科書を買って開発にチャレンジしてます。
    カウンターの基本要素{5.5アクションの処理 P.155}までいったのですが、シミュレータでの実行でアプリが立上がり直後すぐに落ちてしまい実行ができません。
    プログラムコードにエラーは出てません。
    シミュレータのsafari等は問題なく立上がります。
    開発の為にAppleIDを新たに取得してSDKをダウンロードしてるのですが、元々imacに登録してるAppleIDと違うのでカウンターアプリが落ちるのでしょうか?

    先日、所有してるiphone実機でもimacと初めて同期したときにダウンロードしたアプリだけ落ちる現象が起き、AppleIDの同期し直しで復活しました。アプリの落ち方がこの時と非常に似てるのですがAppleIDとの関係はありますでしょうか?
    本書の内容とずれてますが先に進めず困っており、御教授いただけないでしょうか。

  28. Fudouさん、
    ダウンロードのページからサンプル・コードをダウンロードして、そのプロジェクト・ファイルを実行してみてください。それが正しく動作するようなら、MacやSDKには問題はなく、カウンターを作られる過程で何か間違いがあると推測できます。Apple IDとは関係がないと思いますよ。
    http://akamatsu.org/aka/?page_id=2328

    何か間違いがあった場合に、それが何かを見つけるのが難しいようなら、最初からやり直すこともオススメです。がんばってください!

  29. 早速の御回答ありがとうございます。
    いわれた通り最初からやり直したら出来ました。

    お忙しいところお世話になりました。がんばります!

  30. Hi Scott,
    I hope so too! Translator? Publisher? The Kindle/iPad e-book version would be great.

  31. プログラミングの初心者です。
    iPhoneアプリの本を5冊買いましたが、
    プログラミング経験がほとんどない自分には、この本が一番わかりやすい本です。
    (まだChapter2が終わったばかりですが・・)

    2009年10月10日の第1版第5刷なのですが、
    いくつか直した方が良いかと思われる箇所を書きます。(実際間違っていたらスイマセン)

    1. P203の1.4ステータス・バーの消去 手順3 UIStatusBarHiddenは、Status bar is initially hiddenにどうやらSDK3ではなっているようです。

    2. P248の中央のコードの最後に「sppdY = 0.0;」とありますが、その5行前にもあるので、自信はないのですが、いらないかもと思っています。

    3. P250の図2-15ですが、y1が2つあります。たぶん上のy1が、y2だと思います。

    4. P253の2.9透明のアニメーションのところですが、ここをビルトしたときに注意の警告が出てきたので、ここに .hで、-(void) flash;を書くことを追加したほうがいいと思いました。最後のコードのまとめで
    書いてあったので、分かったのですが。

    同じように、この本で学習されている人もいると思ったので、参考までに書いています。

    まだ3つChapterを残しているので、また書くかもしれません。

    でも、とても良い本で感謝しています。
    今まで何度も他の本で、途中から訳がわからなくなって、困っていたので、
    この本は最後まで行けそうです!

  32. 正誤表(第3刷、第4刷)へのリンクを、このページに追加しては?更新に気付かなかったので。

  33. Is this a Chinese site??? Sugetzi pula si cu curu si cu gura

  34. ダウンロードしたサンプルをコンパイルすると、error: There is no SDK with the name or path ‘iphoneos2.2.1’
    とエラーが出ます。
    使用しているバージョンはXcode 3.2.3です。
    上記iphoneos2.2.1は、何か設定をする必要がありますか?(古いバージョンのものはダウンロード可能ですか?)

  35. TOMOさん、執筆時と比べてSDK/Xcodeのバージョンが上がっているので、ご不便をおかけしています。おそらく現在お使いのSDK/Xcodeで大丈夫ですので、以下をお試しいただけますか?
    (Xcodeでプロジェクトを開いた状態で)
    ・プロジェクト・メニューの「プロジェクト設定を編集」を選ぶ。
    ・「一般」タブを選ぶ。
    ・すべての構成のベースSDKから「iPhone SDK 4.0」などお使いのSDKを選ぶ。
    以上です。

  36. 赤松さま
    お世話になります。早急なご回答ありがとうございます。
    おっしゃる通りにやりましたところ、問題なくコンパイルできました。(^^)
    親切なご対応に感謝いたします。よろしくお願いいたします。

  37. 初めまして。iPhone/iPadアプリ開発を目指して勉強中の者です。
    貴書は一番わかりやすくて参考になるので、愛用させて頂いています。

    p.324 アイコンのローカライズに関して質問があります。

    手順通りにローカリゼーションを行ったのですが、シミュレータ上で実行するとアイコンが表示されず、
    白いアイコンになってしまいます。(ローカライズ前まではアイコンが表示されていました)

    クリーニングをしても直りませんでした。
    他にも、シミュレータ上でアプリを削除して再度実行なども行いました。

    Xibファイルやアプリケーション名のローカライズには成功しています。

    どのようにすればよろしいでしょうか?
    よろしくお願いいたします。

  38. 早速のご回答、ありがとうございます。

    教えて頂いた記事を参考にして、試してみました。
    すると、Images直下に追加したアイコンが常に表示されるようになりました。(日本語設定、英語設定の両方共)
    (クリーニングとアプリ削除後の再実行も済)

    XCodeのImagesグループの中身は、Default.png、追加したIcon.png、▼三角マーク付きのIcon.png(English、Japanese)の4つです。
    追加したIcon.pngしか認識されていないような印象です。

    XCodeでローカライズ処理がもう一度必要なのでしょうか?

  39. 大変分かりやすい本を書いていただきありがとうございます。
    初心者として、がんばってアプリ開発ができそうです。

    一つ質問があります。
    ビルドを実施しようとすると、以下のエラーコメントが出てきて、ビルドが実行できません。
    error:There is no SDK with the name or path ‘iphone2.2.1’

    何か、シミュレータなどの設定が必要なのでしょうか?

    よろしくお願いします。

  40. Saoさん、お書きになられた構成で大丈夫であるような気がしますが、言語を変えても表示が変わらない理由までは分かりません。ダウンロードのページからiOS SDK 4.0用のサンプルコードをダウンロードできますので、これを試していただけますか?

  41. Koutaさん、ダウンロードされたサンプルコードのプロジェクトをビルドされているのでしょうか?お使いのSDKのバージョンに合わせて、ベースSDKを変更していただくと解決するかと思います。あるいは、iOS SDK 4.0をお使いでしたら、ダウンロードのページにiOS SDK 4.0用のサンプルコードがありますので、そちらを試してみてください。

  42. ダウンロードのページからios SDK 4.0用のサンプルコードをダウンロードして
    試してみたのですが、アイコンは常に英語版のAgeのままでした。
    (友人のPCでも結果は同じでした)

    App StoreのiPST#4-AgeのiPhone/iPad実行結果も同じでしたが、
    「App Storeでは言語ごとにアプリケーションアイコンを変えて登録ができない」
    と、アイコンのローカライズ時の注意点にありましたので、(意味を間違えていたらすみません)
    こちらは常にAgeが表示されて正しいのだと思います。

    何度もお手数をおかけして申し訳ありません。

  43. Saoさん、その後にAppleのフォーラムなどを検索してみると、iOS 4.0以降でローカライズしたアイコンが正しく表示されないとの問題が報告されていました。私も4.0以降の動作についてきちんと確認していなかったようです。さらに調べてみますね。申し訳ありません。

  44. ありがとうございました。
    サンプルのダウンロードのバージョンが間違っていました。
    基本的なミスでした。
    すいませんでした。

  45. なるほど、iOS4.0自体の問題だったのですね。
    原因が分かって良かったです。

    私も自分で調べてみます。
    赤松様の方でもし何か進展がありましたら、
    ぜひ教えて頂きたいです。

    丁寧に対応して頂いて、ありがとうございます。
    よろしくお願いいたします。

  46. こちらでは初めまして。実は教えて頂きたい事があるのですが、「時計」「エイジ」などのプログラムを拡張する際に、曜日を表示したいのですが、他の参考書を2冊ほど見たのですがサンプルコードなどがありません。曜日は DatePicker などにある事はわかるのですが、(ん?DatePicker は私の知りたいことではない)知りたいのは、現在の日付の曜日です。西暦、月日などを計算すれば曜日が計算できますがそれはスマートでない。
    どうかお願いします。

  47. H.Saitoさん、今日の曜日をどうされたいのでしょうか? DatePickerに表示するわけでもなく、計算で曜日の値を得るわけでもなく…NSWeekdayCalendarUnitを指定すれば曜日の値は得られますが、そのことではないですよね?

  48. すみません、説明不足でした。曜日を表示したかっただけです。NSWeekdayCalendarUnit をもう少し勉強してみます。永遠の初心者なもので。それでは。

  49. 赤松先生、

    ご無沙汰しております。

    先生の本をはじめ、その他市場に出ているもの、洋書、デブセンの主要ドキュメントなどを読みあさり、そろそろ一年が経過しようとしていますが、いまだにトンネルの出口が見えてきません。つまり、Hello, World!から脱却して簡単なものでもいいから自分なりのアプリを作りたいのですが、自分のアイデアを形にするうえで、どのクラス、どのメソッドをつかって実現していいのか?そこで止まってしまいます。コンパスを持たずに登山に出かけるようなものです。先生の本も3度ほど通読し実際にハンズオンでやってますが、応用力がつきません。VBなどのばあいは、やりたい事を検索すると大概、サンプルコードがヒットしてカスタマイズしているうちに、使えるようになったのですが、Objective-CやCocoaではそう問屋がおろしてくれません。おんぶにだっことはいきませんが、なにか、アドバイスなり指針をいただけないものかとおもい投稿いたしました。ご多忙のところ大変恐縮ですがなにとぞよろしくお願いもうしあげます。

    Kunitachi iPhone Developer

  50. KiDさん、どうアドバイスして良いものやら分かりかねますが、ご自分で開発をしたいので適切なガイド役が必要ということですよね? それであれば文字通り、ガイド役をしていただける開発経験が豊かな方とコンサルタント契約をされるのはどうでしょうか?少なからず費用が発生することになりますが。

    あるいは、アイディアを公開することが構わないのでした、フォーラム的なところでアドバイスを求めてもいいかもしれません。この場合は必ずしも成果を期待しないほうがいいと思います。

  51. iPhone/ iPadはライフワークであり、いそいで開発してもうけよう、などとは考えておりません。Dev Cenのフォーラムは当初から活用しており、本質問に関しても海外のプログラマから数多くの有益な指針・回答が得られました。当面、それを指針として進めていきたいと思います。

    ちなみに、わたしの個人的な感想ですが、アマゾンで多くの洋書を調べ上げ、ポピュラーなものをいくつかを購入しましたが、実践やわかりやすさの点で、本場よりも貴書のほうが優れているように見受けられました。(アップルの公式ドキュメントは別として)

    もし、将来的に翻訳・出版されるようになれば、私と同じように、最初の一歩だけでなく、その続編、次の二歩、三歩を求められる事でしょう。

    KiD

  52. えーと、多分これは「仕様」なんでしょうが、[Age]で、BirthDay を今日より未来の日付にすると差分 [ Age in Days ] が一つ少ない。例えば今日は八月二四日ですが、 BirthDay を八月三一日に設定すると差分が六日になる。コードを読むと実際に計算しているのは gregorian components なので、まあ仕様かなと思うのですが。

  53. こんにちは赤松様
    他書をいろいろ読み比べた結果、iPhone SDKの教科書を購入させていただきました。図解も説明も丁寧で、大変参考にさせていただいております。
    現在Ageでデイト・ピッカーの勉強をしています。そこで一つ質問なのです。ローカライズがどうもうまくいかないのです。日本語環境で表示したとき、デイト・ピッカーは日本語表示になるのですが、ほかのラベルである「誕生日」、セグメンテッドコントロールの「年齢/月齢/日齢」が英語のままなのです。xibファイルをローカライズし、Japaneseを開くと確かに日本語で置き換えているのですが、実行ではうまく表示されない状態です。デイト・ピッカー下のラベルはLocalizable.stringsのためそこだけは正常に日本語表示です。シミュレータは言語と書式を日本語にしています。
    またXcodeのヴァージョンが本とは異なり、例えばTimezoneの項目がなく、そんな小さなことでも悩みの種です(^^;
    長くなって申し訳ありません。思いつくことがありましたら、よろしくご教授ください。

  54. iPhone SDKの教科書の読者です。p208にありますClip Subviews がよくわからないです。
    爆発の絵が欠けてしまうかもしれないとのことですが、Clip Subviews(これはUFOの絵を付けたボタンの属性ですよね)のチェックを付けて、
    爆発の絵の大きさをどんなに変えても欠けることはなく、単に絵が拡大縮小されるだけです。

    そもそも、爆発の絵が拡大縮小される状態がおかしいのでしょうか? Xcode3.2.3を使用しております。
    何かヒントをいただけたらと思います。

  55. iPhone SDKの教科書の読者です。ようやく教科書も1周しプログラムに工夫を加える段階なのですが、バランスに速度の初期値や加速度の初期値を与えても動作の様子が見られませんがこれはなぜでしょうか?

    また上の(の)さんが言われているようにローカライズがうまくいかないのですが、ぜひ参考助言のほうをお願い致します。

  56. (の)さん、ダウンロードのページにあるサンプルコードでも表示が日本語にはならないでしょうか? また、(の)さんが作られているプロジェクト一式をどこかにアップロードしていただければ、こちらでも確認してみます。

    ちなみに、iOS 4.0ではホームスクリーンに表示されるアイコンのローカライズが正しく表示されないことは確認しています。これはiOS 4のバグではないかと思いますが、Appleのフォーラムでも問題が報告されているものの、解決策は示されていないようです。

  57. Taroさん、確かにSDK 4.0ではおっしゃるような状況になりますね。これがSDK/OSの仕様変更なのか一時的なバグなのかは確認できていません。意味的には書籍に記載した通りで、4.0での動作がおかしいような気がしています。

  58. chaさん、シミュレータで実行されているのでしょうか? シミュレータの場合は加速度のデリゲートが呼び出されないので、速度の初期値を変えても変化が起こりません。実機で実行される場合は速度の初期値が反映されるはずですが、いかがでしょうか?

    ローカライズに関しては、2つ前のリプライに書きましたので、参考にしてください。

  59. H.Saitoさん、AppleのドキュメントにはThe resulting component values may be negative if resultDate is before startDate.としか書いていないですね。おっしゃるように「仕様」としか言いようがないのですが「バグ」かも知れません。

  60. こんにちは赤松様
    お忙しいところ時間をさいてのお返事ありがとうございます。さきの質問には書かなかったのですが、確かにアイコンもローカライズされません。自身の勉強のためもあって、ソースは打ち込みでおこなっており、ダウンロードしたコードでビルドを試してはいないのです。が、試してみます。chaさんも同じ現象で悩んでおられるので、おそらくXcodeのバージョンアップに伴い、バグ?があるのかもしれません。
    単なるラベルですがLocalizable.stringsで対応させればいいのかもしれませんが…。スマートな解決ができればと思っています。ソースアップの件はいろいろ試してからと言うことで考えておきます:-)

  61. こんにちは赤松様
    ダウンロードしたコードは問題なくビルドでき、ローカライズもされてます(アイコン除く)ことを確認しました。前のXcodeで作成したプロジェクトは問題なくビルドできるようです(これはこのページ冒頭でも確認が述べられています)。現バージョン(3.2.3)で作成するとローカライズに問題がでるか、私の理解足りないかのどちらかでしょう(T_T)
    ということで、恥ずかしながら私のプロジェクトを下のアドレスにアップしましたので、よろしければみていただけますか?
    http://homepage2.nifty.com/takai/
    nAgeからダウンロードをお願いします。プロジェクトはnAgeで作りましたので、フォルダ名はnAgeでお願いします。ラベルの背景に色が付いているのは、自己都合によるものですので気にしないでください(^^;

  62. (の)さん、ダウンロードしたプロジェクトをそのままビルド&実行すれば、正しく表示されました。英語に切り替えると英語表記になりますし、日本語に戻すと日本語表記になります。何も手を加えていないので、行なわれた作業は特に問題はないようです。試したXocdeはバージョン3.2.3、iPhone SDK 4.0です。

    念のため、ビルド・メニューの「クリーニング」を行なってから、ビルド&実行してみてください。それでもだめならSDKを再インストールすることも必要かもしれません。

  63. 赤松様
    早速ありがとうございます。
    なるほどなってますねぇ。クリーニングは行っていたのですが…。インストールし直すとは考えてなかったですが、それしかないようです。いろいろありがとうございました。後ほどレポートを入れたいと思います。

  64. 赤松様

    どうもありがとうございます。やはり変な動きなんですね。
    ここはあまり気にせずに先に進みたいと思います(^^)
    iphone SDKの教科書は初めて読むiphoneアプリの本ですけど
    本当にわかりやすくて、つくづく買ってよかったと思っています。

  65. 赤松様 こんにちは、(の)です。

    アドバイス頂いた通り、インストールし直してみました。ら、完璧です!(◎_◎;)
    改めてダウンロードするところから、すべてをやり直してみました。Xcode3.2.4、iOS4.1です。
    Macに触れてまだひと月にもならないのですが、本筋でないところで出ばなをくじかれた感じです。まだまだ勉強を続けていきますので、今後ともよろしくお願いいたします。ありがとうございました。

  66. 赤松様

    日頃よりアプリ開発で赤松様の書籍にお世話になっているものです。
    上記のローカライズがうまくいかないという件ですが、
    解決策はSDKの再インストールではなく、アプリの再インストールでうまくいきます。
    おそらくマルチタスクに伴うデータを保持し続けるという動作のための弊害ではないかと思われます。
    何かこの情報がお役に立てれば幸いです。

  67. 銀色さん、アドバイスをありがとうございます。なるほどおっしゃる通りで、SDKを再インストールの前に、ホーム画面からアプリケーションを削除してからビルド&実行するのがいいですね。

  68. 赤松様 初めまして。

    本を読みながら何とかカウンターアプリが無事出来ました。 
    プログラミング入門者ですが非常に楽しく勉強させていただいてます。

    1つちょっとコンフューズした事がありまして、それはpropertyの宣言ですが
    このカウンターアプリでは全くpropertyを書いていないんですが。
    どういうケースで書いて、どういうケースで必要ないのか教えて下さい。

    どうぞ宜しくお願いいたします。
    PS やっぱりc言語を勉強しないとobject-cは無理なんですかね?www

  69. iapple8037さん、インスタンス変数を他からアクセスさせたい場合はプロパティにします。必要が生じない限り、プロパティを宣言する必要はないですよ。C言語の基本知識は必要ですけど、ポインタとは知らない方が安全かも(笑)。

  70. なるほどなるほど! 何となく解った様な気がします。
    有り難うございました。

    ポインタは無視ですねwwww! よく解らないですが、想像するにこんがらがいがちって事ですね!
    了解です!!

  71. 赤松様
    今smashアプリを本を読みながら1つずつ進めているのですが、
    page212で 手順2 コメント化されているviewDidLoadメソッドのコメント記号を削除する。って有りますが、
    SmashViewController.mを見ても何も書かれていないのですが?

    コメント記号とは//ですよね? これを外せば良いんですよね?
    ただ見つからないんです。

  72. iapple8037さん、作成したプロジェクトのSmashViewController.mは以下のようになっていますので、この /* と */を削除してください。(P.230など書籍に掲載されているコードは /* と */を削除した後の状態です。)

    /*
    // Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
    – (void)viewDidLoad {
    [super viewDidLoad];
    }
    */

  73. 赤松様
    有難うございます。
    このコード自体が

    /*
    // Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
    – (void)viewDidLoad {
    [super viewDidLoad];
    }
    */
    作成したプロジェクトのSmashViewController.mで見当たらず、自分のSmashViewController.mでは
    //
    // SmashViewController.m
    //
    // Created by YANAGIDA on 10/10/30.
    // Copyright 2010 __MyCompanyName__. All rights reserved.
    //

    #import “SmashViewController.h”

    @implementation SmashViewController

    – (IBAction)smash:(IBAction *)sender {

    }

    @end
    しか書かれていないので、どこかで操作ミスしているって事ですかね?

  74. 赤松様 ありがとうございます。
    私が作成したプロジェクトのSmashViewController.mに
    /*
    // Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
    – (void)viewDidLoad {
    [super viewDidLoad];
    }
    */
    と言うようなコードが書かれておらず、これは自分の操作しているときに何かのミスで消されてしまったのでしょうか?
    自分のSmashViewController.hには前の作業で記入したactionの実装コードしか書かれていないので?

    それともこのコードは普段は常に自分で書き込むものでXcodeで新規ファイルには書かれていない物なんでしょうか?

  75. 赤松様 iphone SDKの教科書のp116で引数を2個以上あるメソッドの書き方を言葉で書かれていますが、
    何か例を頂けませんでしょうか?

    引数の型 引数名 とは?
    [オブジェクト メソッド名:(引数1の型) 引数名1 キーワード名:(引数2の型)引数名2];
    のキーワード名の意味が今ひとつ理解出来ません。

    お手数ですが何か例とともに見れば解り易いかと?

    宜しくお願いいたします。

  76. iapple8037さん、例えばNSStringのcompare:options:があります。compare:の後には比較する文字列、options:の後には小文字大文字を無視するといったオプションを指定します。このoptionがキーワード名です。

  77. 赤松さん、始めまして、ブラジルのポンテスです。
    赤松さんの本iPhone SDKの教科書-Cocoa Touchプログラミング、最初の一歩、買って読んでいます。
    Chapter3クロックできませんでした。

    私のバージョンです:
    Developer Information:

    Version: 3.2 (10M2309)
    Location: /Developer
    Applications:
    Xcode: 3.2.4 (1708)
    Interface Builder: 3.2.4 (804)
    Instruments: 2.7 (3014)
    Dashcode: 3.0.2 (333)
    SDKs:
    Mac OS X:
    10.4: (8S2167)
    10.5: (9L31a)
    10.6: (10M2309)
    iPhone OS:
    3.2: (7B500)
    4.1: (8B117)
    iPhone Simulator:
    3.2: (7W367a)
    4.0: (8A306)
    4.1: (8B117)

    なにかまちがいましたか
    よろしくおねがいします。

  78. ponts silvioさん、(ブラジルにお住まいですか?)お尋ねの件ですが、書籍はSDK 2.2の頃に書いたので、現在ではXcodeの画面など多少異なる点があります。ただ、内容的には大きな違いはないと思っています。

    どのような問題が生じているか、もう少し具体的に教えてください。また、サンプルコードがダウンロードできますので、これも試してみてください。

  79. お世話になっています。p207からp209にかけてですが、手順8の後highlightを選んでTaget-samashedにしてその後教科書通りにやりましたが、結果円盤をタップしても爆発した状態になりません。5度くらいやってもだめでした。考えられるミスがあれば教えて欲しいのです。よろしくお願いします。

  80. toshi digiさん、Interface Builderでボタン(UFOの画像)を選択して、インスペクタのControlにあるHighlightedをチェックすると爆発した画像になりますか?ならないようであれば指定が間違っていると思います。爆発した画像になるようでしたら、それ以外の指定やコードが間違っているのかもしれませんね。また、このサイトにあるサンプルコードをダウンロードして試してみてください。サンプルコードが正しく動作するようなら、それぞれを比較することで間違いを見つけられると良いのですが、どうでしょうか?

  81. 赤松様。
    本書籍を購入いたしましたが、
    豊富な例に加え、分かり易い解説が入っており、
    本書籍を購入して本当に良かったと思っております。

    赤松様に質問したいことがあるのですが、
    Chapter3クロックの改良、発展にある
    3(秒針をスムーズに動くようにしよう)ですが、
    こちらが実現できません。

    driveClockを下記のように変更したのですが、
    動作が改良前と変わりませんでした。

    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:1];
    int sec=[todayComponents second];
    secondHand.transform=CGAffineTransformMakeRotation(M_PI*2*sec/60.0);
    [UIView commitAnimations];

    SDKのバージョンは、4.2(現時点で最新です)を
    使用しております。
    何か、不備などご指摘をして頂けると、幸いです。
    よろしくお願いいたします。

  82. daiziさん、書籍のままだとカクカクカクって感じで、daiziさんのコードだとニュルニュルニュルって感じですよね(笑)。setAnimationCurve: を調べてみてください。

  83. 赤松様。

    ご指摘の通り、ニュルニュルしておりましたが、
    下記のコードを追加したところ、
    スムーズに動くようになりました。

    [UIView setAnimationCurve:UIViewAnimationCurveLinear];

    改良前と動きが変わらなかった点についてですが、
    シュミレーターを再起動したところ、
    滑らかに動くようになりました。
    (でもニュルニュルしておりました)

    迅速なご返信を頂き、
    ありがとうございました。

  84. こんにちは 赤松様。(の)と申します。9月に質問以来で、ご無沙汰しています。
    なんとか1つのアプリを作り終え、App Storeで公開に至りました。12月には出来上がったのですが、公開までの手続きでずいぶん手こずりました。
    リジェクトも一度食らいました。本書にはなかった、ピッカービューを使い、画面は赤松様のアプリ「元号」をお手本とさせて頂きました。
    まずはお礼までm(_ _)m

  85. おめでとうございます。(の)さん。

  86. 今日は 赤松様
    今counterアプリを本を読みながら勉強しているのですが、updateDisplayというメソッドでまとめると
    アプリの反応速度とか、早くなったりはしないのでしょうか?
    反応速度を上げる事とプログラミングの書き方というのは全く関係ないものなんでしょうか?

  87. iapple8037さん、一概に言えませんが、updateDisplayのメソッドを呼び出す手間が増えるので、アプリの反応速度は落ちる可能性があります。ただ、カウンターのような簡単なアプリでは微々たる違いでしかないと思います。

  88. 筆者による「iPhone SDKの教科書」サポート・サイト(本サイト)の更新は終了しました。今後は「iOSの教科書」をご利用いただければ幸いです。ありがとうございました。

コメントは受け付けていません。