UDID の書式がシュミレータ バージョンによって変わる件

今後、UDID を利用した処理というのは推奨されないことは理解してますが、過去のアプリでは結構使っちゃってますよね。
先日、UDID を利用したコードで、バージョン違いのシミュレータの動作が違うという現象に遭遇し、少しはまったのでメモしておきます。

6.0 シミュレータで UDID を取得した場合 (英小文字。ハイフンがない)
1122bfxxxb4xxx4b33xxx44xxx55xxxa00000000
 
5.1 シュミレータ (英大文字。ハイフンあり)
1122BFXX-XB4X-XX4B-33XX-X44XXX55XXXA
書式:8桁-4桁-4桁-4桁-12桁

UDID をそのまま比較するという処理がある場合、比較できません。(ノД`)

iTunes と iPhone の同期ができない場合の対処方法

10.8.2 にバージョンアップ後、iTunes と iPhone を同期しようとすると mac の動作が停止する(厳密には一定時間後に少し動作して、また停止する。その際、入力を一切受け付けない。)という状態になってしまった。(ノД`)

しょうがないので、考えられる対処をいろいろ試してみた。
iPhone の電源断、リセットを行ったが効果なし。
復元も行ったが、コレ、結構時間がかかりますね。
iPhone で 30 GBくらいの容量を利用しているとデータの復旧を行うのも大変です。
iPhone を工場出荷状態にして(工場出荷時の OS には戻らないようだ。OS のアップデートを行っていれば、その OS の初期状態へ戻される。)各種、設定を復元して、アプリ、音楽、ムービーの動画を行わなくてはならない。
これらのファイルのサイズが大きければ、当然データのコピーに凄い時間がかかります。
また、一度インストールし、その後、削除したアプリなんかも復元されていてそれらのアプリを削除したりで、また余計な手間がかかります。

というわけで、色々試しましたが、以下の方法で、取りあえず iTunes と iPhone の同期ができない問題は解決できました。

iTunes:「iPod Photo Cache」フォルダについて

以下、上記サイトより引用 —–
iPhoto または Aperture のアルバムから同期している場合は、次の手順で、デフォルトの iPhoto ライブラリまたは Aperture ライブラリの場所にある「iPod Photo Cache」フォルダを見つけます。

1. Finder で、「移動」メニューの「ホーム」を選択します。
2. ホームに移動したら、「ピクチャ」フォルダを開いて、「iPhoto Library」ファイルを探します (Aperture の場合は、「Aperture Library」 になります)。iPhoto ライブラリや Aperture ライブラリを別の場所に移動している場合は、まず Finder でその場所に移動します。
3. 「control」キーを押しながら「iPhoto Library」または「Aperture Library」ファイルをクリックして、ショートカットメニューから「パッケージの内容を表示」を選択します。
4. 次のウインドウで、「iPod Photo Cache」フォルダを見つけてゴミ箱にドラッグします。重要:ライブラリパッケージ内のその他のファイルを削除または変更しないでください。その他のファイルを削除または変更すると、データが失われる可能性があります。
5. Finder ウインドウを閉じます。

—–

たぶん、iPod Photo Cache フォルダ配下の Photo Database がおかしくなったようです。
→ 上記フォルダ配下にはいろいろファイルがありますが、更新日時より Photo Database ファイルが問題だったんだと判断してます。
根拠はありませんが。。。笑

また、しばらく様子を見てみます。
あー mac でこんなつまらない問題に見舞われたこと無かったんだけどなぁ〜

では!

(追記)
問題対処の見方を少し変えれば、もう一度アップデートをかけてみるというのも手かも知れない。
→ 適切かどうか分からない問題対処を一つ一つ試すのは大変なので。。。(^_^.)
OS X Mountain Lion 統合アップデート v10.8.2

iOS 6 のカレンダーで曜日の表示位置が改善されている件

一時期話題になってましたが、カレンダーの曜日位置がずれているのがいつ改善されるのか?ずっと気になってたんですよね。
意外に気にならないって人も多かったりして驚きだったんですが、結構気になりますよね。
今回のアップデートで以下の様に対処されていました。

良かった。(^_^.)

iOS 5 のカレンダー

iOS 6 のカレンダー

あと、今回のバージョンアップは結構 UI なんかも模様替えされてて、気分が変わって良いですね。
こんな機能もついてました。。。笑 ちょっとしたことだけど、楽しい。。。(^_^.)

ですが、今回のアップデートでは iPhone と mac の同期でトラブルに見舞われて少し大変な思いをしました。
アップデート時期は、iPhone、mac と同時にいくつかのソフトウェアもアップデートさせるんで少し大変なんだよなぁー

ネットワークの接続状態を取得する方法

ASIHttpRequest が Reachability を利用していたので、存在は知っていたが ARC 版が無くて困ったので、メモ。

Reachability の ARC 対応版を公開している人がいるみたい。
あと、Reachability で通信状態を取得するという使い方は知っていたが、通信状態が変化した際にコールバックさせることもできるみたいなので、メモしておく。

何だかんだで、自分でも ARC のコード書くようになっちゃったなぁ~。あと、blocks とかも見なくちゃいけなしぃ~。GCD とかも見てる。私は特に必要がなければ、 NSOperation がいいなぁ~。(^^)

・参考サイト: TORQUES LABS Reachability:iOSでネット接続を確認する公式ライブラリ
・ソース公開: Reachability (iOS) ARCified — Gist

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
// 通信状態が変化した際に通知されるように設定する
- (void)reachabilityStart
{
    curReachability_ = [Reachability reachabilityForInternetConnection];
    [curReachability_ startNotifier];
 
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(reachabilityChanged:)
                                                 name:kReachabilityChangedNotification
                                               object:nil];
}
 
- (void)reachabilityStop
{
    [curReachability_ stopNotifier];
    [[NSNotificationCenter defaultCenter] removeObserver:self name:@"kReachabilityChangedNotification" object:nil];
}
 
// ネットワーク接続の状態が変化した際の処理
- (void)reachabilityChanged:(NSNotification*)note
{
    Reachability* curReach = [note object];
    NSParameterAssert([curReach isKindOfClass: [Reachability class]]);
 
    NetworkStatus netStatus = [curReach currentReachabilityStatus];
    if (netStatus != NotReachable) {
        // 通信が再確保された際の処理
    }
}

大きな整数値を扱える long long int 型

iPhoneでの long long int 型のサイズは 8byte = 64bit

LLONG_MAX 7fffffffffffffff(9223372036854775807)
ULLONG_MAX ffffffffffffffff(18446744073709551615)

18446 74407 37095 51615(20桁)
とりあえず、桁あふれは気にしなくて良いかな? (^^)

参考: 大きな整数の取り扱い

27-inch, Late 2009 iMac のメモリを16GBにした (^^)

mountain lion にしてから少し iMac の動作がもっさりしたかなぁ~と感じていた。
だが、アクティビティー モニタでメモリの状態など確認すると空きはあるようだし、う~んという感じだったが、amazon さんでメモリ価格を確認すると凄く安かったので、この際 16GB にすることにした。

もっさり感が解消された様に感じて、とても嬉しいです。
(表示がきびきびしたり、atok の変換候補表示スピードが改善されたりとか。。。)

27-inch, Late 2009 iMac では、以下のメモリで動作しました。

シー・エフ・デー販売 メモリ ノートPC用 DDR3 SO-DIMM PC3-8500 CL7 256x8Mbit 4GB 2枚組 W3N1066Q-4G
(2012/09/09 時点) ¥ 3,163
を2セット購入したので、6千円程度で 16GBにできました。(^^)

xcode, photoshop, illustrator などパフォーマンスアップの効果がでそうなアプリでしばらくじっくり動作検証したいと思います。

9/23 時点追記:
今日まで使用していて特に問題はありません。
多分、大丈夫ですね。

11/4 追記:
マックでメモリを追加した場合、マックメム remberで増設したメモリをテストした方がよいですね。

11/26 追記:
何気なしに今日の値段みたら、¥ 2,800 だった。メモリってホント値段変わるね。ちょっとびっくりした。^_^

4/24 追記:
さっき値段をチェックしてビックリ。 ¥5,073って半年前の倍近いじゃん。(@_@)

subclipse 比較エディタの文字コード指定について

mac で subversion を利用する必要があり、久しぶりに eclipse + subclipse でバージョン管理してるが、比較エディタで日本語文字が化けてた。
文字コードの設定を変更したかったのだが、迷っちゃったのでメモしておく。

設定 > 一般 > ワークスペース > テキスト・ファイルエンコード 

参照: Subversion/Subclipseの使用法