Вызов метода в viewDidLoad ().Работа с indexPath - PullRequest
0 голосов
/ 30 марта 2012

У меня есть TableView.Мой источник данных - база данных SQLite.Я пытаюсь подсчитать количество комментариев к какому-либо сообщению (я знаю идентификатор сообщения и его текст) для метода numberOfRowsInSection:.

-(NSInteger)numberOfCommentsForMessage:(NSIndexPath *)indexPath {
    MDAppDelegate *appDelegate = (MDAppDelegate *)[[UIApplication sharedApplication] delegate];
    Comments *comment = (Comments *)[appDelegate.comments objectAtIndex:indexPath.row];
    if (MessageID == [comment.messageID integerValue]) {
        numberOfCommentsForMessage++;
     }
    NSLog(@"number of comments = %i",numberOfCommentsForMessage);
    return numberOfCommentsForMessage;
}

Это не работает, даже NSLog.Я думаю, что этот метод должен быть вызван в viewDidLoad(), но я не уверен, что это правильно.

Редактирование

Comments.h

@interface Comments : NSObject {
    NSString *messageID;
    NSString *commentText;
}

@property (nonatomic, retain) NSString *messageID;
@property (nonatomic, retain) NSString *commentText;

-(id)initWithName:(NSString *)mID commentText:(NSString *)cText;

MessageID, который я получаю из предыдущего представления:

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
          MessageText:(NSString *)messageText
          MessageDate:(NSString *)messageDate
            MessageID:(NSInteger)messageID;
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        MessageText = [NSString stringWithString:messageText];
        MessageDate = [NSString stringWithString:messageDate];
        MessageID = messageID;
    }
    return self;
}

1 Ответ

1 голос
/ 30 марта 2012

Было бы также интересно узнать, что именно не работает. Не работает ли ваше приложение в NSLog или оно возвращает неправильное количество сообщений?

Поскольку вы возвращаете numberOfCommentsForMessage из метода, было бы желательно уменьшить область действия numberOfCommentsForMessage до локальной переменной внутри метода.

-(NSInteger)numberOfCommentsForMessage:(NSIndexPath *)indexPath {
    NSInteger numberOfComments = 0;
    MDAppDelegate *appDelegate = (MDAppDelegate *)[[UIApplication sharedApplication] delegate];
    Comments *comment = (Comments *)[appDelegate.comments objectAtIndex:indexPath.row];
    if (MessageID == [comment.messageID integerValue]) {
        numberOfComments++;
     }
    NSLog(@"number of comments = %d",numberOfComments);
    return numberOfComments;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...