私はTableViewを持っています。私のデータソースはSQLiteデータベースです。私はnumberOfRowsInSection:
メソッドのいくつかのメッセージ(私はメッセージIDとそれのテキストを知っている)にいくつかのコメントを数えようとしています。viewDidLoad()でメソッドを呼び出す。 indexPathを使用する
-(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;
私は前のビューから取得するメッセージID:
- (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;
}
これ以上のコードが必要です。 MessageIDが定義されている場所とComments.hヘッダーファイルを投稿してください。 – Sam
しかし、今から 'numberOfCommentsForMessage:'はどこから呼びますか?それはまったく呼ばれていますか? –
2回以上呼び出す場合は、カウンターを常に増やしています。コメントが10つある場合、numberOfCommentsForMessageは最初に10回、次に20回、30回などになります。これは、インスタンス変数の代わりにあなたのメソッド、私のポストを参照してください。 –