「小学生の漢字 – その字は習った? 2.6.0」がリリースされました。
新しいバージョンでの改善点は以下のとおりです。
- 手書き入力がよりスムーズになりました。
- 常用漢字、人名漢字に含まれていないJIS第一水準漢字、JIS第二水準漢字に対応しました。
普段使いの漢字辞典としても十分にお使い頂けます。
開発用マシンのMacはTime Machineでバックアップしています。
ですが時々エラーが起こり、再度のフル・バックアップからやり直してくれと言ってきます。
これまでは諦めて支持通りに新規のフル・バックアップを行っていました。
(プロジェクト関連はTime Machineとは別に個別のバックアップは取っています)
しかしこのところ頻繁に起こるようになりましたので、何とか修復は出来ないかと試してみました。
フル・バックアップが始まるとMacにもかなりの負荷がかかり開発等も効率が悪くなりますので。
結論から言うとFix Time Machine Sparsebundle NAS Based Backup Errorsの記述通りに行うと修復出来たようです。
記述は全て英語なので、簡単に訳してみます。
sudo su -
chflags -R nouchg /Volumes/{name of your network share}/{name of}.sparsebundle
hdiutil attach -nomount -noverify -noautofsck /Volumes/{name of your network share/{name of}.sparsebundle
/dev/diskx Apple_partition_scheme
/dev/diskxs1 Apple_partition_map
/dev/diskxs2 Apple_HFSX
tail -f /var/log/fsck_hfs.log
‘The Volume was repaired successfully’
‘The Volume could not be repaired’
fsck_hfs -drfy /dev/diskxs2
もし十分なRAMがある場合には以下のようにRAMキャッスを指定する事で高速かする事が出来ます。
fsck_hfs -drfy -c 750 /dev/diskxs2
tail -f /var/log/fsck_hfs.log
‘The Volume xxxxx was repaired successfully’
hdiutil detach /dev/diskxs2
<key>RecoveryBackupDeclinedDate</key>
<date>{whatever-the-date}</date>
<key>VerificationState</key>
<integer>2</integer>
<key>VerificationState</key>
<integer>0</integer>
上記の作業で無事、Time Machineを復旧する事が出来ました。
所要時間は約3時間。
過去のバックアップも見る事が出来ます。
まず、 “Build Phases” -> “Copy Bundle Resource” から拡張子が “.storyboard” となっているファイルを外します。
次に ”Build Phases” -> “Run Script” に追加して以下のように書き込みます。
ibtool --errors --warnings --notices --minimum-deployment-target 5.0 --output-format human-readable-text --compile 'Sample/Storyboard.storyboardc' 'Sample/Storyboard.storyboard'
このコマンドの出力ファイルは Storyboard.storyboardc です。最後に “c” が追加されています。
シュミレータでアプリがインストールされるディレクトリを参照して頂ければ、Storyboardのファイルはこのように最後に “c” の付いたファイルになっている事が確認出来ると思います。
Storyboard.storyboardc を追加します。
また念のために “Build Phases” -> “Copy Bundle Resource” でこのファイルがコピー対象になっている事も確認します。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { NSString *reqSysVer = @"7.0"; NSString *currSysVer = [[UIDevice currentDevice] systemVersion]; if ([currSysVer compare:reqSysVer options:NSNumericSearch] != NSOrderedAscending) { // iOS 7.0 or later UIStoryboard* storyboard; NSString* storyboardFile; storyboardFile = @"Storyboard"; storyboard = [UIStoryboard storyboardWithName:storyboardFile bundle:nil]; self.tabBarController = [storyboard instantiateInitialViewController]; } else { // Override point for customization after application launch. UIViewController *viewController1 = [[[AppMainFirstViewController alloc] initWithNibName:@"AppMainFirstViewController" bundle:nil] autorelease]; UIViewController *viewController2 = [[[AppMainSecondViewController alloc] initWithNibName:@"AppMainSecondViewController" bundle:nil] autorelease]; self.tabBarController = [[[UITabBarController alloc] init] autorelease]; self.tabBarController.viewControllers = @[viewController1, viewController2]; } _window = [UIWindow alloc]; _window = [_window initWithFrame:[UIScreen mainScreen].bounds]; self.window.rootViewController = self.tabBarController; [self.window makeKeyAndVisible]; return YES; }
この例ではxcodeのabBarのテンプレートから生成されるコードを元に追加変更しています。
これを書いている時点ではまだWWDCも終わっていません。ですのでまだどんなサプライズがあるかはわかりません。しかし今の時点で出てきている部分だけを見てもUIに関しては大きな変更が加わっています。ある意味、総取っ替えの感もあります。もちろんUIButtonなどの今までのクラスは引き続き使う事は出来ます。ですが外観が大きく変わり、サイズも変わっています。全体の整合性を取るためにはiOS7以前と後ではUIを別の物として考えた方が良いのではないかとさえ思います。
XcodeもDeveloper Previewの段階ですのでまだ使い勝手が良くなるのかもしれません。
しかし既に幾つかのアプリをリリースしてしまっている側としてはマイグレーションの方法を早めに見つけておいた方が良いかと思います。
この例ではNIBを使った今までのコードにStoryboardを加えたわけですが、すでにStoryboardを使って開発しているアプリも、iOS7以前と以後のStoryboardを分けて実装する事も可能となります。
昨日(11/18)のTV東京でやっているWBSを妻と一緒に見ていましたらスマフォ・アプリの開発者が足らないとかいう内容で、冒頭に何故かぽけっと定規が画面に!妻と一緒に目を疑ってしまいました。
ちょっと超えかけてよ。
そんでもって無料アプリじゃなくて、有料アプリの方を出してよ(^^;
ちなみにその時も広告にiAdは表示されていませんでした。
僕もまだ2回しか見た事が無い幻の広告。
しかしiAd Networkで確認すると日本でも毎日、そこそこの数の人がiAdの広告を見て、クリックしてくれている事になっています。
予約してあったiPhone 4Sを取りに行ってきました。
混雑を防ぐためにauショップの方からあらかじめ来店時間を聞かれていましたので、開店の10時ちょうどに行ってきました。
先に待っているお客さんもいませんでしたので1番乗りです。すぐにカウンターに案内されました。
料金プランやなんやらを聞かれ、担当者が端末入力したり何やらで、結局店を出たのは11時半頃です。
家に帰ってSyncしないと何も出来ないと思いきや、昨日のiOS 5.0のアップデートが功を奏し、Apple IDさえ入力してやればiCloudを使った同期でアドレス帳などもいつの間にか同期されていました。とはいえアプリはまだですので、使える物と言えば「設定」での入力の際にボタンが付いてダウンロードが直ぐに出来るTwitterくらいでしょうか。
まずは最寄りの喫茶店に入り、あれこれ設定を始めました。
最初に設定したのがezwebのメールアドレス。
今まではずっとドコモを使っていましたので新たにezwebのアドレスを取得する所から始まりました。
設定方法は店で簡
単な手順書をもらいましたのでそれに従って…
しかし困ったのが「メッセージ」(SMS)を使って登録用のURLを取得しなければならないという所でした。一見何でもない事なのですが、宛先に「#」を付けた番号を指定しなければなりません。
ところがソフトウェアキーボードのどこを押しても「#」が出て来ないのです。
「設定」でキーボードの設定をいろいろいじりましたが解決しません。
困った…と思ったとき、カーソルを本文の所に合わせるとキーボードが変わりました。当然ですが、ここでは何でも入力出来るのです。さっそく「#」を打ち込み、Copy & Pasteで宛先に注力。
後は返信で帰って来たURLをタップして新規にメールアドレスの取得です。
しかしここでまた…
普通のケイタイでしたらそのまま携帯用のメールアドレスが使えるのですが、iPhoneの場合には登録しなければなりません。
設定の「メール/連絡先/カレンダー」で登録です。
取得したメールアドレスやSMTPのサーバを入力し「さてこれでOK!」と思いきやユーザ名かパスワードが違いますと弾かれてしまいます。
よく手順書を見ると、ここで入力するべきユーザー名はメールアドレスではありませんでした。先ほどのアドレス登録処理を行った後に「メッセージ」でに帰って来た内容。そえを入力しなければなりません。
とはいえこのユーザ名とパスワード、ランダムに生成されたっぽいもので、簡単には覚えられません。「ん…」と考えていると「編集」ボタンというのが画面の右上に見え、それをタップしてやると、個々のメッセージをコピーする事が出来ました。とりあえずそれをメモ帳に張り付け、ユーザ名とパスワードをそれぞれ設定してやる事で何とかメール設定まで無事に完了しました。
そしてちょっとビックリしたのはiPhone 4SにはSiriが入っています。何かで初回出荷ではお預けとか言われていましたし、昨日iOS5.0を入れたiPod Touch 4には入っていませんでしたので。iPod Touch 4にもマイクはあるにはありますが、やはりちょっと違うのかもしれません。
日本語には対応していませんし、まだ試してもいませんので使い勝手等は何とも言えませんが楽しみです。
昨日、iOS 5.0のSDK GMがリリースされました。
それに伴ってプロダクトのコンパチビリティーをチェックし、アップデートしております。
下記のアプリ現在時点で互換性を確認出来たとともに必要に応じて修正を加えました。現在「Waiting for Review」です。