Home > プログラム
プログラム Archive
UIImagePickerControllerのボタンのラベルがローカライズされない
UIImagePickerControllerのナビゲーションバーのボタンが、シミュレータの言語設定を切り替えても変わらないので悩みました。
plistの「Localization native development region」で指定した言語で常に表示されているようです。
結局、Localizable.stringsを追加して、英語・日本語でローカライズしてみたところ、UIImagePickerControllerのナビゲーションバーのボタンも切り替わるようになりました。謎です。
- コメント: 0
- Trackbacks: 0
UIButtton setTitle:forState:ではまる
forState:の引数が論理和で一気に指定できると思い込んでいました。しかし次のように指定してもタイトルがなぜか変わらない。
[button setTitle:title forState:UIControlStateNormal | UIControlStateHighlighted | UIControlStateDisabled | UIControlStateSelected];
しばらく悩みました。やはり一つずつ指定しないとだめなようです。
[button setTitle:title forState:UIControlStateNormal ]; [button setTitle:title forState:UIControlStateHighlighted];
元からそういうものかわかりませんが、だめなものはだめでしたw
- コメント: 0
- Trackbacks: 0
iPhoneシミュレータに写真をとりこむ時にiTunesを使えるのか?
UIImagePickerControllerを使ったプログラムをテストするとき、シミュレータ内に写真が必要です。全く写真が存在しない場合、次のように表示されます。
「You can sync photos and videos onto your iPhone Simulator using iTunes」をまともにとるとiTunesとiPhoneシミュレータを同期して写真を転送できそうなのですができませんでした。どうすればいいのでしょうか。
MacからiPhoneシミュレータ上のSafariにドロップし、クリック長押しで保存する方法だとできるみたいなので、こうするのが正解かな?
- コメント: 1
- Trackbacks: 0
Core Data で NSRangeException
古いモデルがシミュレータに残っていたのが原因?アイコン長押しでアプリを削除してやりなおしたら大丈夫になりました。
- コメント: 0
- Trackbacks: 0
CWinApp::m_pszProfileNameはdeleteじゃなくfreeする
- 2010-04-11 (日)
- プログラム
MFCアプリでiniファイルの書き出しがうまくいかない現象に悩んでいました。その現象自体はiniファイルのパスをフルパスで指定することで解決したのですが(Vista以降で起こるUACがらみの挙動が影響しているらしい)、今度はプログラム終了時にヒープが壊れて文句をいわれるようになってしまいました。
MFCアプリでiniファイルのパスを指定するのはCWinAppのm_pszProfileNameに値を設定します。ここでm_pszProfileNameに直接文字列リテラルのポインタを代入していたのがだめな原因でした。C++とすっかりご無沙汰だったせいで結構初歩的なところでボロボロです。悔しいですw
■間違い
m_pszProfileName = _T("d:\\temp\\test.ini");
■正解
if (m_pszProfileName) {
free((void*)m_pszProfileName);
}
m_pszProfileName = _tcsdup(_T("d:\\temp\\test.ini"));
- コメント: 0
- Trackbacks: 0
IUniformResourceLocatorを使ってインターネットショートカット作成
- 2010-04-10 (土)
- プログラム
IUniformResourceLocatorを使ってインターネットショートカット(*.url)を作成するありがちなコードがWindows 7 64bit版だと動きませんでした(ファイル自体は作られるが中にURLが入らない)。
if (!SUCCEEDED(CoInitialize(NULL)))
return FALSE;
// IUniformResourceLocator オブジェクトを作成しポインタを取得する
IUniformResourceLocator *pURL = NULL;
HRESULT hResult = CoCreateInstance (CLSID_InternetShortcut, NULL,
CLSCTX_INPROC_SERVER, IID_IUniformResourceLocator, (LPVOID*)&pURL);
BOOL bResult = TRUE;
if (SUCCEEDED(hResult)) {
IPersistFile *ppf = NULL;
// ショートカットを二次記憶装置に保存するため IPersistFile
// インターフェイスの問い合わせをおこなう
hResult = pURL->QueryInterface(IID_IPersistFile, (void **)&ppf);
if (SUCCEEDED(hResult)) {
// URLを設定する
pURL->SetURL(csURL, 0);
#ifdef _UNICODE
ppf->Save(csFile, TRUE);
#else
WCHAR wsz [MAX_PATH]; // Unicode 文字列へのバッファ
// 文字列がANSI文字で構成されるようにする
MultiByteToWideChar(CP_ACP, 0, csFile, -1, wsz, MAX_PATH);
// ショートカットを保存する
ppf->Save(wsz, TRUE);
#endif
// IPersistFile へのポインタを開放する
ppf->Release();
} else {
bResult = FALSE;
}
// IUniformResourceLocator へのポインタを開放する
pURL->Release();
} else {
bResult = FALSE;
}
CoUninitialize();
return bResult;
結局、Save()に渡すパスが相対パスだとだめで絶対パスだと大丈夫みたいなんですが、いつの間にかこういう仕様になったのでしょうか。謎は深まる…。
- コメント: 0
- Trackbacks: 0
iPhone SDKの入れ替え
- 2010-04-09 (金)
- プログラム
iPhone SDK 3.2.1から3.2.2に入れ替え。3.2.1をアンインストールしてから3.2.2を入れた。
アンインストールはターミナルで以下のコマンドを実行する。
$ sudo /Developer/Library/uninstall-devtools --mode=all
インストールはdmgファイルをマウントしてインストールスクリプトを実行するだけ。
うちのMac環境はSnow Leopardオンリーだから関係ないけど、Leopard用のiPhone SDKがダウンロードできなくなっていた。古い環境もダウンロードできればいいのに。
XCode.plistを削除する。
$ rm ~/Library/Preferences/com.apple.XCode.plist
- コメント: 0
- Trackbacks: 0
iPhone Core Dataについて
- 2010-04-09 (金)
- プログラム
SQLを書くのは苦にならないのですがいいかげんSQLite3を直で使うのはよくないと改心し、Core Dataに関して調べてみました。
- iPhone Dev Center…日本語版のPDFあり
- Core Data プログラミングガイドの概要…Cocoa用だけど参考になるかと。
日本語ドキュメントっていまいち探せません。Google検索からしかリンクが見つからなかったのでどこから入ればいいのかしばらくうろついてしまいました。
- コメント: 0
- Trackbacks: 0
Windows7 64bit + Visual Studio 2008でFaEditビルドできず
- 2010-04-08 (木)
- プログラム
そろそろWindows7対応をしないといけないと思いWindows 7 64bit版でFaEditをビルドしてみたのですが、「コンピュータにmfc90dがないため、プログラムを開始できません。この問題を解決するには、プログラムを再インストールしてみてください。」とエラーが表示され起動できず…orz。それにしても「プログラムを再インストールしてみてください」っていう適当なエラーメッセージ、Visual Studio 2008を再インストールしろってことなんでしょうか?

ためしにVistaマシンでビルドしてみたら起動できたので、Windows 7 64bit版とVisual Studio 2008との間で何か問題があるのかもしれません。VC+MFCの世界からすっかり遠ざかっていたんで解決するのに時間がかかりそうです。困った。
- コメント: 0
- Trackbacks: 0
ERROR 2006 (HY000) at line 445: MySQL server has gone away
MySQLで上記エラーが表示される場合、設定ファイルmy.iniを書き換えmax_allowed_packetの設定を追加します。
[mysqld]
max_allowed_packet = 16M
- コメント: 0
- Trackbacks: 0
ホーム > プログラム
-
« 2012 年 2月 » 月 火 水 木 金 土 日 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

