4

私は非常に具体的な問題を抱えています。さまざまな状態をとるDAO(データアクセスオブジェクト)を使用しています。これらの状態はinitメソッドに渡されてから使用されます。

今私が抱えている問題は、具体的な状態をinitメソッドに渡すことができないように見えることです.

object-c ポインターの __autoreleasing id への暗黙的な変換は、ARC では許可されていません

コード:

-(DAOObject *)makeSpecificDataAccessObject{
    SQLiteState* localstate = [[SQLiteState alloc] initWithTableName:@"TableName"];
    DAOObject* specificDAO = [[DAOObject alloc] initWithLocalState:localstate]; //where error happens
    return specificDAO;
}

@interface DAOObject : NSObject <SettingsListenerProtocol>
    -(id)initWithLocalState:(id<StateProtocol> *)LocalState;
@end

@interface SQLiteState : NSObject <StateProtocol>
-(id)initWithTableName:(NSString *)tableName;

@end
4

1 に答える 1

14

*中の星を外す

-(id)initWithLocalState:(id<StateProtocol> *)LocalState;

idクラスのインスタンスへのポインタとしてすでに定義されています。

于 2013-04-24T16:21:05.187 に答える