MySQLで-(ハイフン)つきのデータベースを扱う場合の注意

先日ロリポップで借りたMySQLデータベースサーバーを使ってみました。

するとデータベース名は自動で「[ユーザ名]-[自分がつけたデータベース名]」になってしまったようで、コマンド「USE ****-*****」とかやってみてもエラーで「そんなオプションないけど。コマンド違うんじゃない?」って言われる始末。

 

どうやらハイフンつきのデータベース名を扱うときには、前後に`(バッククオート)をつけないとだめみたいです。

「USE `****-*****`」ってことですね。これでデータベースをSQLから操作できました。

参考:MySQLで"-"(ハイフン)を含むデータベース名を付けたい場合 - 元RX-7乗りの適当な日々

UIButtonのサブクラスはbuttonWithType:が使えない

 

UIButtonのサブクラスを作ってNSNumberとかのプロパティ値を持たせたかったんですが、プロパティ値を設定しようとしたら"NSInvalidArgumentException"エラー。

unrecognized selector sent to instanceということらしい。

なんでだろうと思ったら、値設定の数行前に書いてあった

button = [UIButton buttonWithType:UIButtonTypeRoundedRect];

が原因だったみたい。

 

http://mthr.blogspot.jp/2010/10/uibuttonbuttonwithtype.html

こちらによると、このメソッドはオーバーライドできないそうです。

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIRoundedRectButton〜

いいて言われてたから、UIRoundedRectButtonにそんなプロパティないよーっておこられてたんですね。

どうやって実装しよう?

APPLE LLVM compiler 4.2 error

っていうエラーが出ました。

詳細を見るとerror:PCH file built from a different branchとのこと。

 

MySQLConnectorライブラリを使ってる関係で、コンパイラを「armv6,armv7」に変更してるのが原因かなあ。

とは思ったんですが、以下サイト参考にしてcleanしたら直りました。

http://toaru-boubiroku.doorblog.jp/archives/24643581.html

iOSアプリからMySQLデータベースに接続したい

ってずっと思ってたんですが、同じ悩みの人を発見しました。

http://stackoverflow.com/questions/9151644/connect-to-mysql-directly-from-an-ipad-app-not-via-php-etc

 

ここの回答によれば、

・解決法1 >> 有志の方が作ったMySQL for iPhone and OSXなるものを使う。

 http://www.karlkraft.com/index.php/2010/09/17/mysql-for-iphone-and-osx/

・解決法2 >> Mac OS X用にOracleが提供しているMySQL Connectorを使う。

 http://dev.mysql.com/downloads/connector/c/#downloads

・解決法3 >> MySQLが動くサーバとの間に、PHPで動作するサーバを中継する。

 

3はサーバたてる手間があるので、1か2を使ってやっていきたいところです。

2のMySQLネクターC言語用でObjective-C専用ではないので、なんか使ってて違和感を覚えそうな雰囲気。

1はObjective-C用として作ってくれてあるのでその点は良いけど、信頼度の点でどうなのかなあ。