Ios 如何将sqlite3表分配给nsarray
我正在开发一个聊天应用程序,我正在使用sqlite存储和检索聊天历史,我能够插入值,但在检索时,我在数组中得到nil,这是我的代码Ios 如何将sqlite3表分配给nsarray,ios,sqlite,chat,xmppframework,Ios,Sqlite,Chat,Xmppframework,我正在开发一个聊天应用程序,我正在使用sqlite存储和检索聊天历史,我能够插入值,但在检索时,我在数组中得到nil,这是我的代码 messageArray=[DBObject AllRowFromTableName:@"chatTable" withUserID:myJID withFriendID:chatWithUser]; for (int i=0; i<[messageArray count]; i++) { Message *msg=[[Message alloc
messageArray=[DBObject AllRowFromTableName:@"chatTable" withUserID:myJID withFriendID:chatWithUser];
for (int i=0; i<[messageArray count]; i++) {
Message *msg=[[Message alloc] init];
msg.text=[[messageArray objectAtIndex:i] msg];
if ([[messageArray objectAtIndex:i] lft_rght]==0) {
msg.fromMe=YES;
}
else{
msg.fromMe=NO;
}
msg.type=SOMessageTypeText;
NSString *dateString =[[messageArray objectAtIndex:i] tim_dte];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"HH:mm,yyyy/MM/dd"];
NSDate *dateFromString = [[NSDate alloc] init];
dateFromString = [dateFormatter dateFromString:dateString];
msg.date=dateFromString;
[self.chatHistoryArray addObject:msg];
我收到msg.text empty。请在处理返回数组的循环中帮助我,这些行
Message *msg=[[Message alloc] init];
msg.text=[[messageArray objectAtIndex:i] msg];
应该是
Message *msg=[[Message alloc] init];
msg.text=[[messageArray objectAtIndex:i] text];
您还应该在循环之外创建一次NSDateFormatter,并使用它,因为它不是要创建的“快速”对象
您可能还需要重构对[messageArray objectAtIndex:i]
的常量调用。创建一个局部变量,该局部变量只获取一次引用,然后使用该局部变量。所以重构后的代码看起来像
messageArray=[DBObject AllRowFromTableName:@"chatTable" withUserID:myJID withFriendID:chatWithUser];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"HH:mm,yyyy/MM/dd"];
for (int i=0; i<[messageArray count]; i++) {
Message * baseMessage = [messageArray objectAtIndex:i];
Message *msg=[[Message alloc] init];
msg.text= baseMessage.text;
msg.fromMe= (baseMessage.left_rght == 0);
msg.type=SOMessageTypeText;
msg.date=[dateFormatter dateFromString:baseMessage.tim_dte];
[self.chatHistoryArray addObject:msg];
}
messageArray=[DBObject AllRowFromTableName:@“chatTable”with userid:myJID with friendid:chatWithUser];
NSDateFormatter*dateFormatter=[[NSDateFormatter alloc]init];
[日期格式化程序setDateFormat:@“HH:mm,yyyy/mm/dd”];
对于(int i=0;i您似乎没有返回您创建的数组
?准备工作也确实有效吗?注释掉的NSLog“IN-LOOP”在未注释掉时触发了吗?
messageArray=[DBObject AllRowFromTableName:@"chatTable" withUserID:myJID withFriendID:chatWithUser];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"HH:mm,yyyy/MM/dd"];
for (int i=0; i<[messageArray count]; i++) {
Message * baseMessage = [messageArray objectAtIndex:i];
Message *msg=[[Message alloc] init];
msg.text= baseMessage.text;
msg.fromMe= (baseMessage.left_rght == 0);
msg.type=SOMessageTypeText;
msg.date=[dateFormatter dateFromString:baseMessage.tim_dte];
[self.chatHistoryArray addObject:msg];
}