0

配列内のオブジェクトへのアクセスに問題があります。「Place」オブジェクトをNSMutableArrayに保存します。TableViewのこの配列にアクセスしたいと思います。1行目に「セレクターの既知のインスタンスメソッドがありません」というエラーが表示されます。以下の行を参照してください。

cell.imageView = [[self.currentPlaces objectAtIndex:indexPath.row]picture];
cell.subtitleLB.text = [[self.currentPlaces objectAtIndex:indexPath.row]description];
cell.objectNameLB.text = [[self.currentPlaces objectAtIndex:indexPath.row]name];

これは私のPlaceオブジェクトです:

@interface Place : NSObject{

CLLocation *objectLocation;
UIImageView *picture;
NSString *name;
NSString *description;
}

プロパティ「description」と「name」へのアクセスは問題ありません。このエラーが発生する理由がわかりません。

どうも。ドミニク

4

2 に答える 2

2

私も同じ問題を抱えていました。私のために働いたのは、UIImageViewの代わりにUIImageを渡すことでした。したがって、コードは次のようになります。

@interface Place : NSObject{

CLLocation *objectLocation;
UIImage *picture;
NSString *name;
NSString *description;
}

この

cell.imageView.image = [[self.currentPlaces objectAtIndex:indexPath.row]picture];
cell.subtitleLB.text = [[self.currentPlaces objectAtIndex:indexPath.row]description];
cell.objectNameLB.text = [[self.currentPlaces objectAtIndex:indexPath.row]name];

それでもうまくいかない場合は、もう少しコードを投稿して確認してください。

于 2012-07-02T19:28:49.810 に答える
2

実際にはメソッドを宣言していません。宣言したのはインスタンス変数です。@propertyおそらく、代わりに sを使用する必要があります。

@interface Place : NSObject
@property (nonatomic, retain) CLLocation *objectLocation;
@property (nonatomic, retain) UIImageView *picture;
@property (nonatomic, copy) NSString *name;
@property (nonatomic, copy, getter=objectDescription) NSString *description;
@end

これにより、実際に必要なメソッドが作成されます。descriptionプロパティのメソッドを read に変更したことに注意してください-objectDescription。これはNSObject、メソッドが既に宣言-descriptionされており、関連のないプロパティでオーバーライドしてはならないためです。

最近の Clang を使用している場合は、これで十分です。インスタンス変数は自動的に合成されます (たとえば、アンダーバー プレフィックスを使用_picture)。古いバージョンを使用している場合 (たとえば、エラーが発生する場合)、次のように@synthesize行を追加する必要があります。

@implementation Place
@synthesize objectLocation=_objectLocation;
@synthesize picture=_picture;
@synthesize name=_name;
@synthesize description=_description;
@end
于 2012-07-02T19:38:37.223 に答える