NSPredicateの条件で動的なプロパティを設定する

iPhone

NSPredicateを使ってCore Dataに保存しているデータを検索したいとき、プロパティを動的に変更したいときの方法を書きます。

通常は、

 [NSPredicate predicateWithFormat:@"weight == 100"];

の”weight”のようにプロパティは固定で検索すると思います。

“weight”の部分を動的に変えたい場合、こうやってしまいがちです!

 NSString* propertyName = @"height";
 [NSPredicate predicateWithFormat:@"%@ == 180", propertyName];

NSPredicateは文字列を勝手に「”」で括ります。
なので、

 "height" == 180

となってしまいます。

以下でこれを避けることができます。

 [NSPredicate predicateWithFormat:@"%K == 180", propertyName];

%@ を %Kにかえれば動的なプロパティを設定することができます。

NSJSONReadingMutableLeavesの意味

iPhone

NSJSONReadingMutableLeavesとは、iPhoneでJSON文字列表現をパースする際の挙動をオプションで指定できるNSJSONReadingMutableLeaves。
オプションは3つ。

 (1)NSJSONReadingMutableContainers

(2)NSJSONReadingMutableLeaves
(3)NSJSONReadingAllowFragments

それぞれの意味は、
(1) dictionary(array)をnsMutableDictionary(nsMutableArray)にする
(2) NSDictionaryまたはNSArrayの中身を変更可能にする
(3) ObjectとArray以外の型もトップレベルに許可

MySQLモニタの起動

MySQL

MySQLモニタの起動

サーバーにログイン後

 mysql -u ユーザー名 -pパスワード

で、起動します。

MySQLサーバーに接続する

MySQL

WindowsPCで、コマンドプロンプトからMySQLサーバーに接続する場合です。
参考:コマンドプロンプトを使用する

 mysql -u ユーザ名 -p データベース名

と入力すると

 Enter password:

と出るので、パスワードを入力しましょう。

MySQLインストール後に管理用ユーザーを作成する

MySQL

MySQLをインストールした後いつも管理用ユーザーを作成するので、その方法を記録しておきます。

mysqlクライアントを開始します。

 # mysql -u root

管理者用アカウントを作成します。YOUR-PASSWORDは、実際に利用するパスワードに置き換えてください。

 mysql> grant all privileges on *.* to 'mysqladmin'@'localhost'  identified by 'YOUR-PASSWORD' with grant option;
 Query OK, 0 rows affected (0.00 sec)
 
 mysql> grant all privileges on *.* to 'mysqladmin'@'%' identified by 'YOUR-PASSWORD' with grant option;
 Query OK, 0 rows affected (0.00 sec)

開発環境等ではセキュリティより利便性を優先できる場合は、任意ホストから接続できるようにホスト名にワイルドカード’%’を指定した管理アカウントも用意しておくと便利です。