Hatena::ブログ(Diary)

日々是笑心 このページをアンテナに追加 RSSフィード

2011-11-30

CGRectを NSString に変換する

| 16:56 | CGRectを NSString に変換するを含むブックマーク CGRectを NSString に変換するのブックマークコメント

あかん、使うときに1回は探してる。UIKit API へのリンクと一緒にメモっとこ。^^;)

  • NSStringFromCGRect
  • NSStringFromCGSize
  • NSStringFromCGPoint

iOS Developer Library 日本語版

| 09:24 | iOS Developer Library 日本語版を含むブックマーク iOS Developer Library 日本語版のブックマークコメント

良く探すからリンクはっとこ。iOSドキュメントを読みこなすの、英語版だけだとつらいんだよね。日本語版あると助かるわ。:-)

2011-11-28

NSData と NSString の相互変換

| 17:25 | NSData と NSString の相互変換を含むブックマーク NSData と NSString の相互変換のブックマークコメント

忘れてること多いからメモっとこ。:-)

NSData → NSString

NSString *str= [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

NSString → NSData

NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];

VMware Fusion 4 と Windows 7 でフォルダ共有できない

14:52 | VMware Fusion 4 と Windows 7 でフォルダ共有できないを含むブックマーク VMware Fusion 4 と Windows 7 でフォルダ共有できないのブックマークコメント

会社のMacLionアップデートWindows 7Lion に対応した VMware Fusion 4 で動かしているから問題ないだろーと思ってたけんだけど出た。フォルダ共有ができない。(T^T)

  • 「実行時フォルダの共有ステータスを更新できません:ゲストで VMware Tools が実行していません」

VMware Tools は更新したんだけどなぁ。(T^T)

f:id:watanata2000:20111128145150p:image


VMware fusion のメニューを見たら、やっぱし「仮想マシン > VMware Tools のインストール」になってる。インストールし直してみたら復活したよ。やっぱり、VMware Tools が動いてなかったっぽい。タスクマネージャを開いたら、今度はちゃんと vmtoolsd.exe が動いてる。今度から、怪しいと思ったらこのプロセス確認しとこ :-)

動作確認

2011-11-26

画面オフ時に WiFi 接続をキープする方法

| 20:26 | 画面オフ時に WiFi 接続をキープする方法を含むブックマーク 画面オフ時に WiFi 接続をキープする方法のブックマークコメント

iPad間で WiFiBluetooth 通信させるアプリを作ってるんだけど、通信中に画面がオフになるとセッションが切れちゃうのが困りもん。

接続をキープさせる方法ないかな〜と思ってたら、WiFi なら UIKit キー でUIRequiresPersistentWiFi=YES にすると、プロセスが動いている間は維持できるっぽい。:-)

UIRequiresPersistentWiFi (Boolean - iOS) specifies whether the application requires a Wi-Fi connection. iOS maintains the active Wi-Fi connection open while the application is running.

UIRequiresPersistentWiFi

デフォルトはオフ(No) で30分で切れるそうな。今まで UIKit Keys でどんな設定ができるか、ちゃんと見てなかったけど、やっぱ押さえとかないといけませんなぁ ^^;)

ValueDescription
YESiOS opens a Wi-Fi connection when this application is launched and keeps it open while the application is running. Use with Wi-Fi–based applications.
NO(Default) iOS closes the active Wi-Fi connection after 30 minutes.

あとは Bluetooth の方を解決できれば御の字だね :-)

自作アプリから設定(Settings.app)を起動する

| 18:48 | 自作アプリから設定(Settings.app)を起動するを含むブックマーク 自作アプリから設定(Settings.app)を起動するのブックマークコメント

iOS5 から自作アプリから設定画面(Settings.app)を起動できるようになったらしい。


実装方法は超シンプル。1行で切り替えができる。シミュレータで試してみたら、確かに切り替わった。:-)

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs://"]];

サブの設定画面を表示したい場合、prefs:// を変えれば OK。Bluetooth の場合、こんな感じ。

prefs:root=General&path=Bluetooth

動作検証
  • Mac OSX 10.7.2
  • Xcode 4.2.1

おまけ

iOS4 で似たようなことをやりたい場合、アプリ内から設定にアクセスできる InAppSettingKit が良さそう。BSDライセンスって話だし。:-)


実装方法はこちらに書いてあるのを参考にね! :-)

2011-11-23

NSLog で % を出力させる

| 11:37 | NSLog で % を出力させるを含むブックマーク NSLog で % を出力させるのブックマークコメント

NSLog でパーセント(%)を出力する方法って %% なのね。今更ながら、メモっとこ。C言語、ちゃんとやってないのバレバレ ^^;)

The code for percent sign in NSString format is %%. This is also true for NSLog() and printf() formats.

How to add percent sign to NSString

iOS5 で NSURLConnection メソッドが Deprecated になってる

| 11:02 | iOS5 で NSURLConnection メソッドが Deprecated になってるを含むブックマーク iOS5 で NSURLConnection メソッドが Deprecated になってるのブックマークコメント

iOSアプリで非同期にファイルをダウンロードする場合、NSURLConnectionメソッドを使うのがお約束

  • connection:didReceiveResponse:
  • connection:didReceiveData:
  • connectionDidFinishLoading:
  • connection:didFailWithError:
  • connection:didReceiveAuthenticationChallenge:

、、、だったんだけど、iOS5 から Deprecated になってた。じゃーどすれば良いのかって話も書いてくれてないし (T^T)


どーなってんだと思ってたら、stack overflow にネタ見っけた :-)

Fishing around the header files tells me that the methods were moved from an informal protocol (which is a deprecated Obj-C pattern) into a formal delegate protocol called NSURLConnectionDataDelegate that's in NSURLConnection.h, but doesn't have a public documentation.

iOS5 NSURLConnection methods deprecated

どうやら iOS5 からは NSURLConnectionDataDelegate が追加されて、そこにメソッドが移されたみたい。たしかに URLConnection の delegate を指定するときに xxxDelegate とか明示的に宣言しないまま self とか指定して???とは思ってたけど。まぁ、キレイに整理しました、、、って感じなんだろね。

ただ、Public Document に載ってないのに <xxxDelegate>って指定して良いのかな? iOS4プラットフォームインストールしてちゃんと動くんかな? これが理由で Apple の公開審査NG ってオチになったら笑えないなぁ ^^;)

おまけ

API を見たところ、iOS5 以降だとファイルダウンロードや認証にはこちらを使うのが正解なのかな?


おまけ2

NSURLConnectionDownloadDelegate の使い方サンプルで良い感じのがあったのでメモっとこ :-)


おまけ3 - 2011/11/28

上で書いた話の裏取り。iOS 4.3 to iOS 5.0 API Differences を見たら、確かに NSURLConnection.h で duplicated (Removed) になったメソッドが NSURLConnectionDataDelegate 以下に移動 (Added)されたってなってる。でも Public API にリンクされてない。なんでだろ?ホントにこの API 使うで大丈夫なんかな? ^^;) 

NSURLConnectionDataDelegate that's in NSURLConnection.h, but doesn't have a public documentation.


f:id:watanata2000:20111128181818p:image

2011-11-15

CoreData の実行SQLを出力させる

| 20:32 | CoreData の実行SQLを出力させるを含むブックマーク CoreData の実行SQLを出力させるのブックマークコメント

CoreData は早い話 O/Rマッパー。SQLを自動生成してくれるのは良いんだけど、どんなSQLが発行されてるか知りたいときもある。デバッグの仕方は、こちらさんが参考になる :-)


"Analyzing Fetch Behavior with SQLite" に、コマンドライン引数に次を指定すると CoreDataから SQLite へ発行される SQLデバッグ出力できるとの記述があった。

  • com.apple.CoreData.SQLDebug 1
CoreData で発行されている SQL をデバッグ出力する

ただ Xcode4 になって、設定箇所がちょいと変わった。こちらさんが参考になる。


手順はこんな感じ。アプリを実行してコンソールにSQLが出力されてれば OK :-)

  1. Product -> Edit Scheme を実行する。
  2. 左ペインで .app を選択する。
  3. メインパネルで Arguments タブを選択する。
  4. Argument Passed On Launch に「-com.apple.CoreData.SQLDebug 1」を追加する。
  5. OK ボタンを押す。

f:id:watanata2000:20111115203535p:image

f:id:watanata2000:20111115203536p:image

f:id:watanata2000:20111115204016p:image

確認環境
  • Mac OSX 10.6.8
  • Xcode 4.0.2

2011-11-03

ロゴのデザインって難しい

| 20:54 | ロゴのデザインって難しいを含むブックマーク ロゴのデザインって難しいのブックマークコメント

今作ってるサービスのロゴデザインを考えてるんだけど、デザインのセンスってSEの世界と全く別モノ。どうせ作るならコンセプトをデザインに取り入れてキャッチーな感じにしたい。おんでもってロゴ見てサービスをイメージしてもらえる、そんなデザインにしたいんだけど、アイディアなんて出てこない。:-(

世間様、どーゆーロゴ使ってるんだろ?そー思って参考になりそうなサイトを探してたらいいのあったよ。:-)



日本でも見ることができるセンスあるロゴを集めて解説もしてくれてる。そのロゴの持つ意味とか、ストーリーとかバックグラウンドとか。なるほど!ってみとれちゃうよ。

まぁ見とれるの良いけど、パクリって言われないようにしないとね ^^;)