私はrestkit googleグループでこの質問をしましたが、実際にはRK特有の問題ではなく、インスタンスに送信された認識できないセレクタ - UITableViewとRestkit LoadObjectsオプション
私は数時間このサークルで回っています。私はWebサービスから取得し、RestKitsオブジェクトマッピングを使用してオブジェクトに格納されたデータをUITableViewに取り込みしようとしています。サービスに当たって、オブジェクトをすべて保存すると美しく動作します。
問題は、テーブルの再読み込みを試みたときです。このエラーが発生します。
'NSInvalidArgumentException', reason: '-[CoursesModel text]: unrecognized selector sent to instance and then app shuts down and
takes me here:
@autoreleasepool {
return UIApplicationMain(argc, argv, nil,
NSStringFromClass([RoundShoutAppDelegate class]));
}
Thread 1: signal SIGABRT
CoursesModelはモデルIの設定です。テーブルビューのデリゲートをクラスとして指定しなかった場合、コースはテーブルビューに完全にロードされます。しかし、私はdidSelectRowAtIndexPathでセルの1つをクリックしようとするとエラーが発生します。 デリゲートを指定する必要があるという事実に焦点を当てると、何かが本当にうんざりしています。 。
私はとき、それはいけない何かがリリース取得されていますが、データは_courses配列である。これは、方法によって、ARCプロジェクトであると仮定しています。
ここで適切なコードの一部ですが、もしあなたが必要とするより多くの私に教えて。誰もが素晴らしいだろう正しい方向に私を指すようにまったく情報を持っている場合は!あなたの助けをありがとう!
MainViewController.h
@interface MainViewController : UITableViewController <CLLocationManagerDelegate, RKObjectLoaderDelegate, UITableViewDelegate, UITableViewDataSource> {
IBOutlet UITableView *coursesTableView;
NSArray *_courses;
}
@end
CoursesModel.h
@interface CoursesModel : NSObject {
NSNumber* _courseID;
NSString* _courseName;
NSString* _city;
NSString* _state;
NSNumber* _distance;
}
@property (nonatomic, retain) NSNumber* courseID;
@property (nonatomic, retain) NSString* courseName;
@property (nonatomic, retain) NSString* city;
@property (nonatomic, retain) NSString* state;
@property (nonatomic, retain) NSNumber* distance;
@end
MainViewController.m
//Most of the code ommited for your sanity
// All good up to this point
- (void)objectLoader:(RKObjectLoader*)objectLoader didLoadObjects:
(NSArray*)objects {
//NSLog(@"Loaded courses %@", objects);
_courses = objects;
// There is data in _courses.
NSLog(@"Loaded courses in array %@", _courses);
[coursesTableView reloadData];
デリゲートメソッド:
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { CGSize size = [[[_courses objectAtIndex:indexPath.row] text] sizeWithFont:[UIFont systemFontOfSize:14] constrainedToSize:CGSizeMake(300, 9000)];
return size.height + 10;
}
何かが-textという名前のメソッドを呼び出しています。存在する場合は、そのメソッドをポストします。 – CodaFi
私のコードで知る限り、ここで "テキスト"が直接参照される場所は - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { \t CGSize size = [[ _courses objectAtIndex:indexPath.row] text] sizeWithFont:[UIFont systemFontOfSize:14] constrainedToSize:CGSizeMake(300、9000)]; \tリターンサイズ。高さ+ 10; } ---しかし、私はそれをコメントし、テストに50を返し、エラーはまだそこにあります。だから私はそれをisnしていると推測している –
@CodaFi - これを見てくれてありがとう。より多くのコードが必要な場合はお知らせください。私はコードスニペットがあなたが探している "テキスト"リファレンスではないので、他の場所で掘り下げて喜んでいます。再度、感謝します! –