• 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
 
 

iOS5、発表されましたね。
個人的には、焦っても仕方ないので、ぼちぼち練りながらニッチな所をやっていこうと思います。

さて、ハーバード大学 講座 「CS 193P iPhone Application Development」、以前資料が公開されて話題になったのですが、2010-2011 Fallの資料も公開されていたのでメモ。

2010-2011 Fall
http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-fall

基本的な講義とともに、気になったのは下記の回:

  • Title: Lecture 8: Gesture Recognizers
  • Title: Lecture 13: Blocks and Multithreading
  • Title: Bonus Lecture: Accessibility

特に、8と13はこれからの基本かなと思うのと、アクセシビリティは障害者の方だけでなく、みんなで使えば新しいシンプルなUIができるのかなと想像するところもあって勉強したくなりました。

以前に話題になった講座資料も挙げておきます:

2009-2010 Winter
http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-winter

【追記 2011.6.8 14:31】
@splhack さんにお勧めいただいたコンテンツを追記させて下さい。
Madison Area Technical College、すごいですね…advancedとあるだけに内容が楽しみです… :)

iOS5、発表されましたね。
個人的には、焦っても仕方ないので、ぼちぼち練りながらニッチな所をやっていこうと思います。

さて、ハーバード大学 講座 「CS 193P iPhone Application Development」、以前資料が公開されて話題になったのですが、2010-2011 Fallの資料も公開されていたのでメモ。

2010-2011 Fall
http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-fall

基本的な講義とともに、気になったのは下記の回:

  • Title: Lecture 8: Gesture Recognizers
  • Title: Lecture 13: Blocks and Multithreading
  • Title: Bonus Lecture: Accessibility

特に、8と13はこれからの基本かなと思うのと、アクセシビリティは障害者の方だけでなく、みんなで使えば新しいシンプルなUIができるのかなと想像するところもあって勉強したくなりました。

以前に話題になった講座資料も挙げておきます:

2009-2010 Winter
http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-winter

【追記 2011.6.8 14:31】
@splhack さんにお勧めいただいたコンテンツを追記させて下さい。

@splhackさんのブログ:Grand Central Dispatchについての考察
http://tumblr.splhack.org/post/5662664642/grand-central-dispatch

Madison Area Technical College

posted by Png satoko on Wed 8 Jun 2011 at 14:11

Gestureメモ。扱われているRecognizerも挙げておく。

Touches

コード内には二つプロジェクトがあって、Touches_GestureRecognizersがGestureのサンプルコード。指でviewを拡大・回転する。もう一方はUIResponderのサンプル。

  • UIRotationGestureRecognizer
  • UIPinchGestureRecognizer
  • UIPanGestureRecognizer
  • UILongPressGestureRecognizer

http://developer.apple.com/library/ios/#samplecode/Touches/Introduction/Intro.html#//apple_ref/doc/uid/DTS40007435

Table View Animations and Gestures

セルを指で広げるサンプルアプリ。

  • UIPinchGestureRecognizer

http://developer.apple.com/library/ios/#samplecode/TableViewUpdates/Introduction/Intro.html#//apple_ref/doc/uid/DTS40010139

SimpleGestureRecognizers

  • UITapGestureRecognizer
  • UISwipeGestureRecognizer

http://developer.apple.com/library/ios/#samplecode/SimpleGestureRecognizers/Introduction/Intro.html#//apple_ref/doc/uid/DTS40009460

posted by Png satoko on Wed 1 Jun 2011 at 14:20

溶けたiPhone事件の後、新しいiPhoneにしてからエラーが出だしたのですが、これのお陰でバックアップが出来なくなってしまいました。
で、バックアップに失敗するので、iOSのアップデートにも失敗するという事になってしまい………ついに解決を目指す事に。

iOSのアップデート失敗時に下記を見るように指示されたので、Resolutionの項を一つ一つ試して行きます。

Update and restore alert messages on iPhone, iPad, and iPod touch
http://support.apple.com/kb/TS1275

でもだめです、解決しません。
アップデートをする際に、ステップの一部としてバックアップをするようになっているのですが、そこで失敗しているようです。

というわけで、まずはバックアップが成功するのを目指すことにしました。
ですが通常のバックアップも(ちゃんと)失敗して、下記のメッセージが表示されてしまいます…:

itunes_error_sync_services.png

iTunes was unable to load dataclass information from Sync Services. Reconnect or try again later.

メッセージ内容で検索してみたら下記が出てきました。 2008年7月の質問ですが、返信の中に「治ったー!」という報告がいくつかあったので試してみることに。

MacRumors Forums:"iTunes was unable to load dataclass information from Sync Services.... Jul 17, 2008, 03:42 AM
http://forums.macrumors.com/showthread.php?t=524354

回答として挙げられていたのは下記のリンク。

iTunes: How to remove and reinstall the Apple Mobile Device Service on Mac OS X
http://support.apple.com/kb/HT1747?viewlocale=en_US

下の方にある、OS XのApple Mobile Device Serviceを削除・再インストールする方法をやってみました。ざっくりと訳します。

OS XのApple Mobile Device Serviceを削除・再インストールする方法

  1. iPhone、iPad、iPodをMacと繋がっているケーブルから外す
  2. FinderでApplicationsフォルダ内にあるiTunes.appファイルをごみ箱に捨てる。iTunesアイコンも捨てる。
  3. FinderのメニューでGo > Go to Folderを選択、下記を開く:
    /System/Library/Extensions

  4. AppleMobileDevice.kextファイルをごみ箱に捨てる

  5. FinderのメニューでGo > Go to Folderを選択、下記を開く:
    /Library/Receipts/

  6. AppleMobileDeviceSupport.pkgファイルをごみ箱に捨てる。認証ダイアログが出てきたら、administratorパスワードを入力する。
    注意:Mac OS X v10.6以降の場合は、このファイルがないかもしれない。その場合は次のステップへ。

  7. Macを再起動する
  8. FinderメニューでFinder > Empty Trashを選択、Macを再起動する。
  9. iTunesの最新版をダウンロード、再インストール。
  10. Macにデバイスを接続して、iTunesを開く

さてこの作業後、iPhoneを接続してみたら…みごとバックアップも成功、iOSも更新できました!

posted by Png satoko on Wed 11 May 2011 at 05:58 with 1 comment

アプリをアップロードしようとしたのですが、Xcode 3.2.5+SDK4.2のbuildで、Application Loader.app(Version 1.4 (92))でもdwarfdumpエラーが出ます:

The dwarfdump binary must exist and must be executable: /usr/bin/dwarfdump (-19036)

ネットを色々見たところ、Xcodeを再インストールなんていう解決策も見たのですが、それはちょっと…と思ったので、

iTunes ConnectのManage Your Applicationsの一番下段にあるドキュメント
Using Application Loader内に、Application Loader1.3へのdmgリンクがあったのでそれをインストール

https://itunesconnect.apple.com/apploader/ApplicationLoader_1.3.dmg

Application Loader
Version 1.3 (89)

Upload & 更新申請うまく行きました!
ちなみに、Xcode3.2.5についてくるApplication Loader.appのバージョンは下記でした:

Application Loader
Version 1.4 (92)

posted by Png satoko on Mon 13 Dec 2010 at 03:16 with 1 comment

結末に驚いたのでメモ。

XcodeでBuild & Analyzeすると、下記のようなメッセージが出て困っていました。UILabelのインスタンスを返すような関数なのですが、ちゃんとautoreleaseして返しているのにも関わらず、です。

Object with +0 retain counts returned to caller where a +1 (owning) retaincount is expected

メモリ管理周りをググったり、stackoverflowをうろつくなりして色々調べること数時間、原因を突き止めました:

Object with +0 retain counts returned to caller where a +1 (owning) retaincount is expected - Stack Overflow
http://stackoverflow.com/questions/3553401/object-with-0-retain-counts-returned-to-caller-where-a-1-owning-retaincount-i

結局、コード自体は間違っていなくて、「関数名が良くない」ということでした。AppleのMemory Management Programming Guideには下記のような記述があります:

You “create” an object using a method whose name begins with “alloc” or “new” or contains “copy” (for example, alloc, newObject, or mutableCopy).

http://developer.apple.com/library/mac/#documentation/cocoa/conceptual/MemoryMgmt/Articles/mmObjectOwnership.html#//apple_ref/doc/uid/20000043-SW1

[意訳] Objectを作成する際にはalloc, new, copyなどで始まる関数名を使う(例、alloc, newObject, mutableCopy)

コード内の関数名を書き換えて、解決!
(newで始まるだけではダメなのですね…)

   1  //NG
   2  (UILabel *)newLabelWithPrimaryColor:(UIColor *)primaryColor;
   3  
   4  //OK
   5  (UILabel *)createLabelWithPrimaryColor:(UIColor *)primaryColor;

posted by Png satoko on Wed 8 Dec 2010 at 00:21

Fast App Switch周りをガリガリやっていたら、@hkato193さんからメモリ警告絡みでアドバイスを頂きました。大変参考になったのでメモ。

http://twitter.com/hkato193/status/7972941820067840

@satoko ですので、メモリ警告が出てもデータ送信が継続できるようになっているか(ビューとかが捨てられるのは普通通りの対処でOK)、willTermiate(や時間切れハンドラ)で通信遮断やデータ送信失敗への対処が出来ているかがポイントです。Fri Nov 26 01:44:32 via YoruFukurou

つまり、Background突入時、ファイル送信などの処理をTask Completionでやる際に、

  1. メモリ警告で送信処理を中止しない
  2. 一方で、willTerminateやTask CompletionのExpirationHandler内で正しくキャンセル処理を行うこと:
    • 通信遮断
    • データ送信失敗への対処(送信データの保存など)
    • ユーザへの通知

Task Completionとは

Task Completion APIを使えば、Expiration handlerを使ってBackgroundで処理を行える:

   1  // WWDC 2010 Session 109 
   2  // Adopting Multitasking on iPhone OS, Part2 より引用
   3  self.bgTask = [app beginBackgroundTaskWithExpirationHandler:^{ 
   4  	[self prepareForSuspend];
   5  	[self pauseUpload];
   6  }];
   7  
   8  // returns after upload finishes or pauses 
   9  [self uploadPhotos];
  10  
  11  [app endBackgroundTask:self.bgTask];

詳細の書き方については、BlockやらGrand Central Dispatchを理解する必要がありそうなのですが、なんとなく次が見えた感じです。

posted by Png satoko on Thu 2 Dec 2010 at 15:39

メモ。
CS 193P 2009冬の公式資料サイトは下記:

http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-winter

でも微妙に含まれていない資料もあるようで、例えば「Follow-Up Notes - Lectures 6-7」なんかは下記のサイトで見つけることができました:
(どうやらシンガポールの大学?のようです)

http://e-learning.cs.usm.my/apple/iPhone-Dev-Stanford/

というわけで公式にないものもあるようなので、iTunes+公式・上記のサイト、あわせて利用したいです。

[追記] 役に立った資料のリンクを挙げておきます

IBOutletのrelease、MVC・delegateについて:

Follow-Up Notes - Lectures 6-7
http://e-learning.cs.usm.my/apple/iPhone-Dev-Stanford/0607-FollowUpNotes.pdf

retain, release, autolease, @propertyについて:

Title: Lecture #3 - Custom Classes, Object Lifecycle, Autorelease & Properties
http://www.stanford.edu/class/cs193p/cgi-bin/drupal/system/files/lectures/03_Custom%20Classes.pdf

posted by Png satoko on Fri 10 Sep 2010 at 15:31

project.pbxprojファイル内に各ターゲットに対するSDKROOTが二つあって混乱したのですが、プロジェクトとターゲット、別々にSDKROOTを持つようです。

project.pbxproj内の下記のコメント部分辺りを読むと、別々に設定があることがわかります:

/ Build configuration list for PBXNativeTarget …
/
Build configuration list for PBXProject

色々見ていると、各ターゲットの設定がプロジェクトより優先されるようなんですが、Appleの資料(詳細は下の資料の参考3を参照)を見ると、

ターゲットごとにSDKを指定することもできますが、そのようにすると、プロジェクト全体に作用するようなSDK設定を使用している他のXcodeの機能の処理が妨げられる可能性があります

ということが書いてあって、結局はSDKの設定はプロジェクトもターゲットも同じ方が間違いがないかなと思いました。

資料

参考1:

1つのプロジェクトに複数のターゲットを持てるので、ターゲットごとに設定ができるようターゲットの設定が優先されます。全ターゲット(1つの場合も)同じ設定で良いなら、プロジェクトの方だけ設定すれば良いです。 [twicco.jp @tucitter ] posted at 23:15:29
http://twilog.org/iphone_dev_jp/date-090328

参考2:

結論としては、プロジェクトとターゲット、別々に設定できるんだね。
project.pbxprojを直接読んでやって発覚。
http://denrinken.tsbps.com/diary/2009-10.html#2009-10-12b

参考3:

SDK設定がビルドにどのように影響するか

Important: Xcodeにおいて、プロジェクトに対するSDKを選択すると(“「クロス開発のためのプロジェクトの設定」”を参照)、選択したSDKは、プロジェクト内のすべてのターゲットに適用されます(すべてのターゲットが、指定したSDKのヘッダとライブラリを使ってビルドされます)。ターゲットごとにSDKを指定することもできますが、そのようにすると、プロジェクト全体に作用するようなSDK設定を使用している他のXcodeの機能の処理が妨げられる可能性があります。(略)
http://developer.apple.com/jp/documentation/DeveloperTools/Conceptual/cross_development/HowItWorks/chapter_2_section_7.html#//apple_ref/doc/uid/20002001-1105070

posted by Png satoko on Wed 8 Sep 2010 at 03:24

Release設定で、Code Signing IdentityAutomatic Profile Selectorを設定していて、Buildすると上記のようなエラーが出る様です。 どうやら、アイコンサイズ(57x57)やらチェックしてくれるOptionらしい。

Project SettingsのBuild OptionsでValidate Build Productをチェック

"Project - Edit Project Settings - Build - Configuration(Release)"内にあるBuild Optionsの項です。これでwarningは出なくなります。

詳細はこちらから:

Xcode 3.2.2 Validate Built Product - Blog - Use Your Loaf
http://useyourloaf.com/blog/2010/4/3/xcode-322-validate-built-product.html

posted by Png satoko on Tue 13 Jul 2010 at 06:04

iPhone OS 4の対応をしていたら、小さなことにハマってしまったのでメモ。

iPhone SimulatorでiPhone4表示が小さい(320x480)

Hardware - Device - iPhone4にしたのに、普通のiPhoneと同じ大きさで混乱していたら、Window - Scale - 100%にしたらちゃんと640x960で見れました。

xCodeのBuild ResultsでCodeSignとProcessProductPackaging(embedded.mobileprovision)の詳細が見れない

各項目を右クリックExpand All Transcriptsで見る事ができます。

posted by Png satoko on Fri 2 Jul 2010 at 05:09
Contents
ハーバード大学 iPhoneアプリケーション開発 2010-2011秋の講座資料が公開されてた
Apple公式 UIGestureRecognizersのサンプルコード
【解決】iPhoneのバックアップ エラー:iTunes was unable to load dataclass information from Sync Services. Reconnect or try again later.
[iPhone] Application Loader.appでdwarfdumpエラー
[Xcode] 関数名が良くないという結末。Build & Analyzeのメッセージ:Object with +0 retain counts returned to caller where a +1 (owning) retaincount is expected
メモリ警告とTask Completionについてのメモ
スタンフォード大学 iPhoneアプリ開発講座(CS 193P) 2009冬の資料
Xcodeのプロジェクト設定とターゲット設定ではターゲット設定が優先される
[Xcode]【解決】warning: 'The Validate Built Product build setting was not enabled when building for Distribution.'
[iPhone] xCodeでの2つの小さなtips
Comments
KingofSmack: Here also good reads for this mobile applicatio... '14-5
satoko: stackoverflowでも同じエラーを挙げている人がいたので、1.3でアップロードしたよっ... '10-12
ujihisa: :%s/blog/glob/g '10-7
satoko: しゅが〜様 返事が遅くなって申し訳ありません。また、投稿百景ご購入ありがとうございます。 ... '09-10
しゅが~: こんにちは。投稿百景を発売日翌日から利用しています。本当にいいAppを作っていただきました。罫... '09-10
Services from s21g
twpro(ツイプロ)
Twitterプロフィールを快適検索
地価2009
土地の値段を調べてみよう
MyRestaurant
自分だけのレストラン手帳
Formula
ブログに数式を埋め込める数式コミュニティ