2015年1月29日木曜日

【CoreDate】persistentStoreCoordinatorでエラーになる場合の対応方法

エンティティ変更後にアプリを起動してエラーになる場合は

エンティティ変更前の.sqliteファイルを削除する必要があります。

.sqliteファイルの場所は、エラーメッセージが出力されているコンソールに

表示されます。


2014年12月22日月曜日

JavaとPHRでHMAC256→Base64の結果を合わせる

■Java
  
public static String getHmac256Base64() throws Exception {

        String signatureKey = "1ABCDEF3HIJKL2MNOP5RS"; // 暗号化キー
        String target = "targetString";            // 対象文字列

        // 秘密鍵の作成
        SecretKey secretKey = new SecretKeySpec(signatureKey.getBytes("UTF-8"),"HmacSHA256");

        // hmac256
        Mac mac = Mac.getInstance("HmacSHA256");
        mac.init(secretKey);
        mac.update(target.getBytes("UTF-8"));
        byte[] encData = mac.doFinal();

        // PHPの形式に合わせる
        StringBuffer stringBuffer = new StringBuffer();
        for (byte b : encData) {
            stringBuffer.append(String.format("%02x", b));
        }
        String hmac256String = stringBuffer.toString();

        // base64エンコード
        byte[] encBase64 = Base64.encodeBase64(hmac256String.getBytes("UTF-8"));

        return new String(encBase64);
    }

■PHP
<?php
echo base64_encode( hash_hmac('sha256', 'targetString', '1ABCDEF3HIJKL2MNOP5RS',false ));
?>





2014年9月8日月曜日

iPhoneアプリ開発(XCode5) 〜 画面遷移(UIModalTransitionStyleFlipHorizontal)

1.遷移イベントとなるボタンを配置します









2.追加したボタンのイベントをxibに対応するviewController.hにアクションを追加します

3.viewController.mに遷移処理を追加します





 ①遷移先のビューを宣言します。
 ②宣言したビューの遷移モードを指定します。
  bmFilipsViewController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
 ③宣言したビューに遷移します。


2014年7月10日木曜日

【Java】 コンストラクタのprivate宣言

クラス Hogeが次のように定義されている場合

Class Hoge {
  
    String str1;
    String strOption;

    private Hoge(){                        // private宣言★
        // 初期化
        str1 = "初期化します。";
    }

    public Hoge(String str){
       
        this();  

        // オプションの初期化
        strOption = str;
    }

}

コンストラクタHoge(引数なし)がprivate宣言されているため、Hogeクラス外部から
    Hoge hoge1 = new Hoge();
のようにインスタンス作成を行うことができなくなる。
このことを利用して、インスタンス作成時に引数を強制的に渡すようにすることができる。
    Hoge hoge2 = new Hoge("引数");

【Java】 コンストラクタ内で別のコンストラクタを呼び出す

クラス Hogeが次のように定義されている場合

Class Hoge {
  
    String str1;
    String strOption;

    public Hoge(){
        // 初期化
        str1 = "初期化します。";
    }

    public Hoge(String str){
       
        this(); // 引数なしコンストラクタを呼び出す ★ 

        // オプションの初期化
        strOption = str;
    }

}

引数なしのコンストラクタは this(); 呼び出すことができる。
なので、引数なしのコンストラクタで最低限の初期化処理を行い、その他の引数ありの
コンストラクタでは、オプションの設定 などを行うこともできる。

【Eclipse4.3】Tomcatプロジェクトのワークスペースを、他のマシンにコピーしたときの設定

Tomcatプロジェクトをまるっとコピーして、別PCのEclipseで開いたところコンパイルエラーに。。。

はて?と思いエラーが起きている場所を確認すると、どうやらJSPやサーブレット特有の

コードがエラーになっている。

Eclipseで対象のプロジェクトを選択 → 「右クリック」 → 「プロパティ」

出てきたプロパティ画面の左メニューから「Tomcat」を選択し、右側に表示された

Tomcatメニューの「全般」タブの「Tomcatプロジェクト」にチェックが付いていない!

ここにチェックをつけたところ、Tomcatプロジェクトと認識されました。