EZ-NET

UPDATES

更新日 内容
2013-01-28 シェルスクリプトが置かれているパスを取得する。
Linux のシェルスクリプトで、実行したスクリプトファイルが置かれているパスを取得する方法です。
2013-01-27 C++ で型のキャストを使う。
C++ では、これまでの C 言語でのキャストに意味を持たせた 4 つのキャストが用意されています。キャストが意味を持つことで、意図とは違うキャストをコンパイラがエラーとして判定できるようになります。
2013-01-27 C++11 では NULL ではなく nullptr を使う。
C++ では NULL は 0 で定義されているため、オーバーロードされた関数を呼び出すようなときに予期しない動作をすることがありました。そんな問題を補うために C++11 では nullptr というキーワードが用意されています。
2013-01-26 C++ で配列を繰り返し処理する 3 つの方法。
C++ には for ループを使って配列を順次処理する方法と、STL の for_each を使って処理する方法が用意されていました。そして C++11 で範囲に基づく for ループが追加されたので、それらを使った配列の繰り返し処理について整理しました。
2013-01-26 C++ で同じクラスの再定義を防止する。
C++ では、同じヘッダーファイルを二重インクルードすると、定義が重複してエラーになってしまいます。それの回避策として #pragma once と #define の 2 つの方法があります。
2013-01-26 C++11 の右辺値参照とムーブコンストラクタの使い方。
C++11 の右辺値参照を使うことで、コピーコンストラクタや代入演算子をより効率的に実装することができるようになります。特に std::vector で扱うクラスで使うと効果大です。
2013-01-25 C++ で可変長配列でインスタンスのポインタを扱う場合の削除。
C++ の可変長の配列 std::vector でクラスインスタンスのポインタを扱っている場合には、配列に格納されているポインタのメモリ管理を自分で行う必要があります。
2013-01-25 C++ で関数のポインタを使用する。
C++ での関数ポインタの使い方について記してみました。クラスのメンバ関数の場合はまた少し違う使い方になるので、その辺りについても記してあります。
2013-01-24 C++ でラムダ関数を使用する。
C++11 では、ラムダ関数という匿名関数のような仕組みが導入されました。ここではその使い方について見て行きます。
2013-01-24 C++ の STL で配列を繰り返し処理する。
C++ の STL (Standard Template Library) には、std::for_each という、配列の要素を使って順次処理する関数が用意されています。
2013-01-23 C++ の STL で配列の値を初期化する。
C++ の STL (Standard Template Library) には、std::fill や std::fill_n という、配列の要素を初期化する関数が用意されています。
2013-01-23 C++ で STL の配列をイテレータで繰り返し処理する。
C++ の STL (Standard Template Library) には、std::vector などの動的配列の要素の繰り返し処理を支援する仕組みとして、イテレータというものが用意されています。
2013-01-23 C++ で可変長配列 std::vector<T> を使用する。
C++ では、可変長の配列を簡単に利用できる std::vector というテンプレートクラスが用意されています。今回はその基本的な使い方について触れてみます。
2013-01-21 C++ の読取専用インスタンスで使えるメソッドを定義する。
C++ では、クラスインスタンスを読み取り専用として扱うことができます。その状態で呼び出せるメソッドは、設計時にプログラマが指定しておく必要があります。
2013-01-21 C++ でクラスを定義する。
C++ でのクラスの定義方法です。基本的な構造から、コンストラクタやアクセス指定子、const メソッドなどにも少し触れています。
2013-01-21 C++ で仮想関数を定義してオーバーライド可能にする。
C++ クラスでメソッドをオーバーライドできるようにするには、メソッドを仮想関数として定義する必要があります。また、派生先での実装を強制する純粋仮想関数もあります。
2013-01-21 C++ でクラスインスタンスをコピーする。
C++ では代入演算子を使ってクラスインスタンスの値をコピーすることができます。既定では属性値がシャローコピーされるようになっているので、必要に応じて自前で実装する必要があります。
2013-01-20 C++ で名前空間を定義する。
C++ では、自分の定義したクラスや関数・変数が他のライブラリと衝突しないように、名前空間という仕組みが用意されています。ここではその使い方について見て行きます。
2013-01-19 NSData 生成時に渡したデータの扱われ方。
Objective-C の NSData インスタンス生成には、いくつかの init メソッドが用意されています。それらの動きの違いが気になったので整理してみました。
2013-01-18 コマンドプロンプトで複数のファイル名を変更する。
Windows のコマンドプロンプトを使って、複数のファイルの名前にプレフィックスを付けて一括変更する方法です。
2013-01-18 App Store への申請に使ったアプリを実機で検証する。
iOS アプリの制作で、App Store に申請しているアプリが正しく動いてくれるのか不安になることがよくありますけど、Ad Hoc を活用することでリリース時にかなり近い条件で動作検証できそうです。
2013-01-18 ビットマップを操作して画像をモノトーンに変換する。
iPhone アプリで使うボタン画像を 1 色だけ用意して、シーンに合わせて色を変えて使えるように、ビットマップデータを操作して色を単調化してみました。
2013-01-18 Interface Builder で独自プロパティを設定する。
既存の UI コントロールを派生して独自のプロパティを実装した時、それを Outlet を通して設定しなくても、IB の User Defined Runtime Attributes を使って直接設定できました。
2013-01-14 UIViewのtouchesEndedが呼ばれないことがある場合
iOS アプリを作成中に UIView の touchesBegan が呼ばれているのに touchesEnded が呼ばれないことがある問題に遭遇しました。その原因と解消方法について記します。
2013-01-12 Objective-C フラグメントシェーダー事始め。
iPhone アプリで画像をモノトーン化するのにフラグメントシェーダーを使いたくなって、シェーダーが何かさえままならないところから実装まで何とかこぎつけました。そんな中で身に付いた知識を整理しておくことにします。
2013-01-09 CIFilter で画像をモノトーンに変換する。
iPhone アプリで使うボタン画像を 1 色だけ用意して、シーンに合わせて色を変えて使う方法がないか調べていたところ、CIFilter の CIColorMonochrome フィルタがあることを知り、さっそく試してみることにしました。
2013-01-06 UIView が、あるビュー上に存在するか判定する。
UIView には、自分自身が、指定した UIView 上に存在しているかを調べるメソッドが用意されていました。
2013-01-06 ナビゲーションコントローラーのアニメーションを変更する。
UINavigationController で、プッシュやポップしたときの画面の動作を、たとえば縦方向に変更する方法です。
2013-01-04 ARP エントリを手動で登録する。
IP アドレスと MAC アドレスとを関連付ける ARP エントリを、コマンドを使って手動で登録する方法です。
2013-01-04 ETHERS ファイルの書き方。
iPhone 5 や iPad mini の Wi-Fi 不調を回避するために使った ETHERS ファイルについて簡単に整理してみました。