Я пытался установить количество строк для представления таблицы в моем контроллере, используя следующий метод:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return self.offers.count;
}
предложения - это NSArray, который я объявил и заполнил методом viewDidLoad:
- (void)viewDidLoad {
[super viewDidLoad];
//Fill arrays accordingly
if ([self.item isEqualToString:@"Laptops"]){
self.offers = @[@"MacBook Air", @"MacBook Pro", @"HP"];
self.prices = @[@800, @1200, @600];
self.offerNames = [[NSMutableArray alloc] init];
self.offerPrices = [[NSMutableArray alloc] init];
self.offerNames = [NSMutableArray arrayWithArray:_offers];
self.offerPrices = [NSMutableArray arrayWithArray:_prices];
}
}
Когда я пытаюсь запустить приложение, я получаю следующую ошибку:
-[__NSCFNumber isEqualToString:]: unrecognized selector sent to instance 0xe4a88af02df0791a
Я точно не знаю, что не так в моем коде, и у меня никогда не было этой ошибки раньше. PS: Я использовал тот же метод для настройки других представлений таблиц в других контроллерах, и ни один из них не выдал эту ошибку.
Это файл заголовка:
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@interface OffersTableViewController : UITableViewController
@property NSString *item;
@property (strong, nonatomic) NSMutableArray *offerNames;
@property (strong, nonatomic) NSMutableArray *offerPrices;
@end
NS_ASSUME_NONNULL_END
Здесь я установил значение Товара:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
NSIndexPath *indexPath = [self.tableView indexPathForCell:sender];
OffersTableViewController *offers = segue.destinationViewController;
NSString *chosenItem = [[NSString alloc]init];
if (isFiltered){
chosenItem = filteredArray[indexPath.row];
}
else{
chosenItem = self.itemNames[indexPath.row];
}
offers.item = chosenItem;
}
Спасибо за помощь ?