次のページの Java のチュートリアルに基づいています: http://tutorials.jenkov.com/java-persistence/dao-manager.html ,
iOS用のxCodeで同じ概念を実装しようとしています。
目標は、 DAOManager を提供することです: DAOCommand (プロトコルとして定義) + 彼の execute メソッドの実装。プロトコルを実装する特定のインターフェイスを作成することもできますが、前述の例のように、呼び出すときにメソッドを実装したいと考えています。私が正しければ、BLOCKを使用してobjective-cでそれを達成することが可能です。
上記のページで提供されている Java コードの例:
public interface DaoCommand {
public Object execute(DaoManager daoManager);
}
CRUD サービスを要求するコードのサンプル:
DaoManager daoManager = daoFactory.createDaoManager();
Person person = (Person)
daoManager.executeAndClose(new DaoCommand(){
public Object execute(DaoManager manager){
return manager.getPersonDao().readPerson(666);
}
});
私は次の方法でそれを実装しようとしました: 1/ DAOCommand:
@protocol IDaoCommand
- (id) executeUsingManager:(DAOManager*)pDAOManager;
@end
2/ DAOManager を呼び出すメソッド getListOfPoi を持つ私の PoiCRUDService インターフェース:
- (id) getListOfPoi {
DAOFactory* daoFactory = [[DAOFactory alloc] initWithOfflineMode:YES];
DAOManager* daoManager = [daoFactory createManager];
[daoManager executeAndCloseDaoCmdBlock:^(id<POIDAO> pPoiDAO) {
[pPoiDAO getListPoi];
}];
}
3/ executeAndClose メソッドを持つ私の DAOManager :
- (id) executeAndCloseDaoCmdBlock:(id(^)(id<IDaoCommand>))pDaoCmdBlock {
// Execute the query
//id returnObject = [[self getPoiDAO] getListPoi];
id returnObject = pDaoCmdBlock(self);
// Close the connection
[self.dataSource closeConnection];
return returnObject;
}
コードを見ると、DAOEntity (POIDAO) が作成されていません。実際、サンプル Java コードを xCode に変換する方法を理解するのに苦労しています。ステップと方法に関するアイデアはありますか?
アイデアやアドバイスをありがとう。セント。