2010年12月27日月曜日

error: can not use an object as parameter to a method

メソッドの返り値の型や、引数の型でクラスを利用している時にアスタリスクを忘れていると発生する。


誤:-(NSArray) getArr:(NSString) str
正:-(NSArray *) getArr:(NSString *) str

2010年12月17日金曜日

.NET 関連のDIコンテナを含むオープンソースフレームワーク

.NET で DIコンテナ、DI機能を含むオープンソースのフレームワークを知りたいので、メモっておく。
.NET 用のオープンソースのフレームワークを参考にしている。
名前ライセンスメモ
Enterprise LibraryMicrosoft Public Licenseマイクロソフトのpatterns & practicesチームが作成しているライブラリ集。Unity というDIコンテナも含む
Seasar.NETApache License, Version 2.0S2の.NET対応版。S2Dao.NETが利用できるのが強力
Spring.NETApache License, Version 2.0Spring の .NET 版
TERASOLNAApache License, Version 2.0NTTデータ作成のオープンソースフレームーク
まだ内容は検証していないので今後調査してみる。

dose not implement the Delegate protocol が発生する場合の対処


xx.delegate = self;

のようなコーディングをすると以下のようなエラーが発生することがある。

XXController dose not implement the XXDelegate protocol

これは、デリゲートの処理を実装するためのプロトコルが存在しないというwarningです。
interface 定義に <xxDelegate>のプロトコルを追加することで消えます。

iOS4.2.1 で実機動作させようとするとWarning: Unable to read symbols が発生する場合の対処

Xcode3.2.5 で iOS SDK 4.2.1 を利用して開発していて、iOS 4.2.1 にバージョンアップ済みの iPhone の実機で作成済みのアプリケーションを動作させようとすると、コンソールに以下のような warning が発生する。

warning: Unable to read symbols for /Developer/Platforms/iPhoneOS.platform/DeviceSupport/4.2.1 (8C148)/Symbols/usr/lib/info/dns.so (file not found).

たしかにそのディレクトリは存在しない。

/Developer/Platforms/iPhoneOS.platform/DeviceSupport/4.2.1 (8C148)

のディレクトリは存在しているが、それ以下のディレクトリに目的の物が存在しないので、「4.2.1 (8C148)」ディレクトリを移動、もしくは削除してから、再度実機を接続すると、修復されるて正常に動作する。

Web で検索すると ln している例が存在するが、バージョンがずれてしまうのであまり好ましくはない。

実機に実際にインストールされているものから復旧されるので、その方が良い。