【お知らせ】iOS 4とXcode 4に完全対応した電子書籍「iOSの教科書」を刊行しました。今後は同書をご利用いただければ幸いです。(2011/07/20)
【お知らせ】筆者による「iPhone SDKの教科書」サポート・サイト(本サイト)の更新を終了します。今後は出版社のサポートをご利用ください。(2011/07/08)
書籍「iPhone SDKの教科書」第1版第1刷での正誤箇所をまとめました。大変お手数ですが、ご訂正いただけるようお願いします。
なお、第1版第2刷以降では以下の事項は修正されています。また、第1版第1刷をお持ちの方は、正誤表(第2刷、第3刷)も合わせてご訂正いただけるようお願いします。
第1部 iPhoneアプリケーション開発・準備編
Chapter 3 XCode
P.38 下から11行目
【誤】「Resurces」グループ
【正】「Resources」グループ
P.38 下から10行目
【誤】「Resurces」グループ
【正】「Resources」グループ
第2部 iPhoneアプリケーション開発・基礎編
Chapter 3 Objective-C言語
P.125 コードの7行目
【誤】floatsize; //大きさ
【正】float size; //大きさ
P.126 1行目〜7行目
【誤】次に、波括弧のブロック内に〜NSObjectをスーパークラスとして指定している。
【正】
(1行目から7行目までは前後と重複しており、不要です。)
P.128 コードの8行目
【誤】return szie;
【正】return size;
P.129 図3-7のキャプション
【誤】クラスを実装するBall.のコード
【正】クラスを実装するBall.mのコード
P.130 図3-8のキャプション
【誤】0b Ballクラスを利用する
【正】Ballクラスを利用する
P.131 コードの7行目
【誤】floatsize; //大きさ
【正】float size; //大きさ
Chapter 5 カウンターの基本要素
P.148 手順2
【誤】Resourcesグループを開く。
【正】Classesグループを開く。
Chapter 5 カウンターの発展
P.180 コード
【誤】-(void) updateDisplay
{
display.text = [NSString stringWithFormat:@”%04d”, count];
}
{
display.text = [NSString stringWithFormat:@”%04d”, count];
}
【正】-(void) updateDisplay
{
display.text = [NSString stringWithFormat:@”%04d”, count];
}
(赤字3行が重複しており、不要です。)
第3部 iPhoneアプリケーション開発・応用編
Chapter 1 スマッシュ~タイマーとアニメーション
P.207 手順5
【誤】「UFO.png」を選ぶ。
【正】「Target.png」を選ぶ。
P.207 手順7
【誤】「UFO-Smashed.png」を選ぶ。
【正】「Target-Smashed.png」を選ぶ。
P.208 6行目
【誤】通常状態のUFO.pngの大きさ
【正】通常状態のTarget.pngの大きさ
Chapter 3 クロック~時刻とタッチ処理
p.280 最初のコード
【誤】– (IBAction)toggleAlarmButton:(UIButton *)sender
{
// アラームの状態を反転
alarmEnabled = !alarmEnabled;
// アラームのビュー・アイテムを設定
[self setAlarmItems];
// アラームの状態を反転
alarmEnabled = !alarmEnabled;
// アラームのビュー・アイテムを設定
[self setAlarmItems];
}
【正】-(IBAction)toggleAlarmButton:(UIButton *)sender
{
// アラームの状態を反転
alarmEnabled = !alarmEnabled;
// アラームのビュー・アイテムを設定
[self setAlarmItems];
}
(赤字4行が重複しており、不要です。)
Chapter 4 エイジ~日付と多言語対応
P.322 注釈
【誤】【注釈】iPhone実機ではすべて日本語で表示されたが、iPhone Simulatorではデイト・ピッカーが日本語で表示されなかった(図は合成による)。iPhone Simulatorは完全に日本語に対応していないようだが、将来改善されるかもしれない。
【正】iPhoneやiPhone Simulatorの言語環境を変更するには、英語モードであればSettingsアプリケーションを開き、GeneralのInternationalにあるLanguageとRegion Formatを変更する。すでに日本語モードであれば、設定アプリケーションの一般の言語環境にある言語と書式を変更する。
Chapter 5 パイル~カメラと画像処理
P.339 最初の注釈の1行目
【誤】Takayuki Fukatsu氏の「QuadCameral」
【正】Takayuki Fukatsu氏の「QuadCamera」
P.353 図5-10
【誤】最初に追加したボタン…ボタン番号は0
【正】2番目に追加したボタン…ボタン番号は1
【誤】2番目に追加したボタン…ボタン番号は1
【正】最初に追加したボタン…ボタン番号は0
(ボタンの説明が逆になっていますので、入れ替えてください。)
P.180 に
-(void) updateDisplay
{
display.text = [NSString stringWithFormat:@”%04d”, count];
}
{
display.text = [NSString stringWithFormat:@”%04d”, count];
}
と書かれていますが、下の3行は不要ですよね?
一応お知らせまで。
nekotさん、ご指摘ありがとうございました。正誤表に反映しました。また何かあればよろしくお願いします!ね。
五月雨式ですいません(試しながら気づいたことを逐次書いているので…)、
P.207 の
「UFO.png」と「UFO-Smashed.png」はそれぞれ「Target.png」と「Target-Smashed.png」になるのではないかと思います。
よろしくお願いします。
nekotさん、ありがとうございます。反映させていただきました。ケアレスミスで恐縮です。
2点ほど。
1.上記の正誤表の記述について
P.131 コードの7行目
【誤】return szie;
【正】return size;
とありますが、これは、P.125同様、
【誤】floatsize; //大きさ
【正】float size; //大きさ
ですよね。
2.書籍本文のP.280 3行目からのコードについて
アラーム状態の反転とビュー・アイテムの設定の実コード2行の繰り返しとなっており、
P.297 104〜117行と異なっています。
繰り返さず、アラーム停止処理が加わっているP.297のほうが正しいのですよね?
葛飾白菜さん、ご指摘の通りです。正誤表に反映しました。ありがとうございます!
もう一点、学習進捗による逐次報告になりますが、
ミスタイプではなく記述内容について。
p.322のエイジの実行について、下端の注釈に
「iPhone Simulatorではデイト・ピッカーが日本語で表示されなかった。」
とありますが、私はデイト・ピッカーを日本語とその書式で表示することができました。
iPhoneシミレータのホーム画面の「設定」アイコンから、
一般→言語環境→書式
と選び、「日本」に変更しました。
なお、iPhone シミュレータのバージョンは、2.2(77.4.9) です。
以上、かつてPrograph CPXを個人購入して楽しんだ物好きより。
先週、Mac miniを買って、まだiPhoneがありません:-)
葛飾白菜さん、ありがとうございます。確認&更新しました。何か勘違いしていたのかもしれません(冷汗)。Prographとは懐かしいですね。
毎度です。
パイルカメラ p.353下端の図5-10において、
OKボタンに対し吹き出しで、
「最初に追加したボタン … ボタン番号は0」
となっています。
同様にCancelは
「2番目に追加したボタン … ボタン番号は1」
と。
p.355 3行目の
「この番号は一番左のボタンが0であり、以降、1ずつ番号が増える。
そこでボタン番号が1であればOKボタンなので …」
から考えると、図の吹き出しはボタンが逆になっていると思われます。
いかがでしょうか?
(なんだかこのUPが楽しい日課になりつつありますが、もう終わってしまいそうで残念)
ピンバック: iPhone SDK の教科書 読了
葛飾白菜さんがおっしゃるように、図5-10のボタンの説明が逆になっていますね。そろそろ完了とのことで、お疲れさまでした。
勉強中人です。
本の204~205ページの内容が理解ができないので
ちょっと質問します。
多分「SmashViewController.xib」と「MainWindow.xib」の「Status Bar」をNoneする事だと
思いますが実際書いている物は3がありますのでちょっと理解ができないですね。
教えていただきたいです。
よろしくお願いいたします。
MainWinow.xibではSmash View ControllerとWindowについて、SmashViewController.xibではViewについて「Status Bar」を「None」に設定します。ファイルは2つですが、設定する対象は3つあります。ひとつのXibファイルの中に複数の設定対象があるからなのですが、このような説明でよろしいでしょうか?
iPhone SDKの教科書には大変お世話になっております
今回少々問題が起きてしまった為、コメントさせて頂きます
スマッシュ~タイマーとアニメーションのサンプルコードでの動作および
素材はダウンロードしたサンプルコード内に含まれたファイルを使用し、
自身で作成しての動作確認を行いました
その後、
P218
スマッシュ~タイマーとアニメーション
1.10効果音の作成
中の「/usr/bin/afconvert -f caff -d LEI16 ファイル名」
にて、当方で用意したwavファイルをcafに変換したところ、iPhoneシミュレータ上での再生が行えませんでした(単純にMAC上でのcafファイルの再生は可能)
念の為、当サイトにてダウンロードしたサンプルコードに付随する「スマッシュ~タイマーとアニメーション」用cafファイルをさらに「/usr/bin/afconvert -f caff -d LEI16 ファイル名」で再変換し動作確認を行ったところ、こちらも通常の再生は可能な物の、iPhoneシミュレータ上では再生が出来ませんでした
使用するサウンドファイルに何か制限があるのでしょうか?
こちらの手順に何か問題があるのかもしれませんが、ご確認頂ければ幸いです
コメントいただいたテキストでは「LEI16」となっていますが、「LE|16」として試していただけますか? 真ん中の文字は大文字のアイではなく、縦棒です。英語キーボードならdeleteキーの下側のキーをshiftキーを押しながら入力します(日本語キーボードは分からないのですが….)。
これが原因だとして(そうでないとしても)、印刷では違いが分からないですよね。何か工夫が必要ですね。
ご回答ありがとうございます
早速試してみたところ
/usr/bin/afconvert -f caff -d LE|16 /Users/me/Desktop/aaa.wav bbb.caf
を実行し、結果が
-bash: 16: command not found
The format ‘LE’ is unknown or an unparseable PCM format specifier
Invalid format string: LE
Syntax of format strings is: [-][BE|LE]{F|I|UI}{8|16|24|32|64}[@sample_rate_hz][/format_flags]
Usage:
となり、エラーになってしまいました
こちらのコード記述ミスであれば大変申し訳ないのですが、ご確認をお願いいたします
ああ、ごめんなさい。大文字のアイで良く、「LEI16」でした。何か勘違いしていたようです。
それで元に戻って、Smash.cafを「/usr/bin/afconvert -f caff -d LEI16」にて再変換してみたところ、特に問題なくiPhone Simulatorで再生されました。そのファイルはコレです。試してみてください。
あと、Xcodeのコンソールには何かエラーは表示されていませんか?
ご連絡遅くなり申し訳ありません
wavファイル変換の件で、特にXcode上にもエラーが出ず、/usr/bin/afconvert で変換を行っていたのですが、
試しにiTUNEで変換作業を行ったところ、なんと正常に再生が出来るようになりました
何分iPhoneアプリ開発からMAC自体も始めた物で、何か基本的な所で理解が足りなかったのかも知れません
ちなみに当方の環境は
マックOSX ver10.5.6
カーネルがダーウィン9.6
です
色々とお知恵を絞って頂き、本当にありがとうございました
初めまして。
以下の部分も「o(オー)」が抜けてましたのでお知らせします。
—————————————————————-
第1部 iPhoneアプリケーション開発・準備編
Chapter 3 XCode
P.37 下から8行目
【誤】「Resurces」グループ
【正】「Resources」グループ
Blackさん、ご指摘ありがとうございます。正誤表(第2刷)に反映させていただきました。
引き続いて報告です。
p286 1行目 「アラーム音が鳴らそう」→「アラーム音を鳴らそう」
でしょうね。
ミー@広島さん、ご指摘いただきありがとうございます。ケアレスミスですね(赤面)。正誤表(第2刷、第3刷)に反映させていただきました。
あれ?
もう一つ書き込みをしてたんですが、消えてますね。
p211 「スマッスが起動すれば直ちに」→「スマッシュが起動すれば直ちに」
p278 1つ目のコード 「veiw.transform」→「view.transform」
ですね。
この本はとてもわかりやすくて良い本だと思います。
ぜひ続編を書いてください!
ネットワークとか、その他いろいろな分野も勉強したいです。
ミー@広島さん、またまた、ありがとうございます。反映いたしました。続編ですか….うむむ….聞かなかったことで(笑)。
またまたお邪魔します。
まとめてご報告すればいいのですが、読みながら見つけているので・・・
p285 1つ目のコードの下の文章の上から4行目。
「0.0より小さい得られた得られた場合は、」→
「0.0より小さい[角度 or 値]が得られた場合は、」
[]は中に入るであろう文字の候補です。
ミー@広島さん、またまたまた、ありがとうございます。反映いたしました。ご協力いただき恐縮ですが、何かありましたらまたいつでもお願いします。
はじめまして。
OSX 10.5.8、Xcode3.13、Simulator – 3.0で、第1版第1刷の本書をもとに勉強させていただいている者です。いろいろほかのiPhone関係の本も読みましたが、御著書は、プログラムコードもわかりやすいようにとても気を使われていて、私のような超初心者にとっては一番わかりやすくて助かります。本当にありがとうございます。
ところで第3部Chapter1のスマッシュですが、解説の通りに入力してゆき、218ページの「アプリケーションを実行してみよう」との言葉通りに実行すると、UFOは表示されず、しばらくするとアプリケーションが異常終了してしまいます。
211ページの図1-13で示されているアウトレットの接続の図ではなされているのですが、本文中には記述がない(もしあったらすみません)、View-Viewの接続を試しに行ってみたところ(SmashViewController.xibウィンドウを開き、そこにあるFile’s Ownerを選択し、プロパティの「Connections」で出てくるOutlets欄のViewの白マルをドラッグし、同じSmashViewController.xib内にあるViewと接続しました。)、今度はうまくゆき、UFOも移動しました。
たまたまやったらうまくいったので、ご報告いたします。
自分がどんな操作をやったのだかは理解していないため、もし宜しかったら、いったいどんな意味があるのか、ちょっとでもご教示いただけると幸甚ですが、ご多忙だと思いますので、ご無理はされないでください。
重ねて、このようなすばらしいご本を本当にありがとうございました。心から感謝申し上げます。
お尋ねのViewアウトレットはテンプレートからプロジェクトを作成した時に、最初から接続されているはずです。操作の途中で意識せずに接続を削除されたのかもしれませんね。もう一度View-based Applicationを作られて、確認してみてはいかがでしょうか。
作者様
display.text = [NSString stringWithFormat:@”%d”, count];
教科書を参考にサンプルのカウンターを作成しています。
すると上記のコードの@”%d”の部分でエラーがでてしまいます。
何がいけないのでしょうか。
ネットで調べてみたのですが、よくわかりませんでした。
まったくのプログラミング初心者で、初歩的な質問ですみません。
すみません。先ほどの件、解決できました。ご迷惑をおかけいたしました。
筆者による「iPhone SDKの教科書」サポート・サイト(本サイト)の更新は終了しました。今後は「iOSの教科書」をご利用いただければ幸いです。ありがとうございました。