Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > iOS > Пытаюсь написать прогу для айфона


Автор: adruha 4.3.2018, 19:10
Пытаюсь написать прогу для айфона но вот как то не получается добавить новые данные в список. При старте появляются без проблем. Но в дальнейшем никак. Что делаю не так?

Код

//"ViewController.h"

#import <UIKit/UIKit.h>
#import <CoreBluetooth/CoreBluetooth.h>


@interface ViewController : UIViewController <CBPeripheralDelegate, CBCentralManagerDelegate, UITableViewDelegate, UITableViewDataSource>
@property (readwrite, nonatomic) CBCentralManager *centralManager;
@property (strong, nonatomic) CBCharacteristic *characteristic;
@property (strong, nonatomic) CBPeripheral *peripheral;

@property (retain, nonatomic) IBOutlet UITableView *tableView;
@property (nonatomic) NSMutableArray *tableData;

@end


Код

//  ViewController.m

- (void)viewDidLoad {
    [super viewDidLoad];
    
    _tableData = [[NSMutableArray alloc] initWithObjects:@"Egg Benedict", nil]; //добавляется запись ОК и отображается
}

- (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI {

     [self.tableData insertObject: @"Indigo" atIndex: 1];
     [self.tableData insertObject: @"Violet" atIndex: 2];
     int count = (int)[self.tableData count];
     for (int i = 0; i < count; i++)
     NSLog (@"Element %i = %@", i, [self.tableData objectAtIndex: i]); // лог показывает что записи добавились
   
    [self.tableView reloadData]; // новые записи не появляются !!??
}

Автор: Bitter 4.3.2018, 20:57
либо у вас аутлет не задан, либо проблема в методах numberOfRows и cellForRowAtIndexPath

Автор: adruha 4.3.2018, 21:23
Код

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return [self.tableData count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *simpleTableIdentifier = @"SimpleTableItem";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc]
                initWithStyle:UITableViewCellStyleDefault
                reuseIdentifier:simpleTableIdentifier];
    }
    //cell.imageView.image = [UIImage imageNamed:@"track-thumb.png"];
    cell.textLabel.text = [self.tableData objectAtIndex:indexPath.row];
  
    return cell;
}


вроде все стандартно? а насчет "аутлет" не понял что вы имели ввиду?


Автор: adruha 5.3.2018, 17:16
Что у нас знатоки перевелись?! Неужели никто не поможет?!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)