2つの異なるテーブルセル識別子(2つの異なるカスタムセル)を使用するテーブルビューがあります。 field_swaptimeがnullの場合、テーブルビューで1つのセルを使用するようにします。 field_swaptimeにデータが含まれている場合は、もう一方のデータを使用します。つまり、何らかの理由で、私のテーブルビューはChatTableCellを使用しているだけです(そして、field_swaptimeの内容にかかわらずSwapDetailTableCellではありません)。なぜ誰がこのことが分かっているのですか?2つの異なるカスタムテーブルビューセル識別子を使用しないTableView
> THIS IS DATA {
> body = "28-10-2016 18:05\n";
> endswaptime = "28-10-2016 19:05";
> name = Brittany;
> "node_title" = "Title";
> "published at" = "Saturday, October 29, 2016 - 00:05";
> swaptime = "28-10-2016 18:05";
> targetuser = 93;
> uid = 47; } 2016-10-28 21:37:16.196852 [2594:626224] Message Received at Saturday, October 29, 2016 - 00:05 2016-10-28
> 21:37:16.197365 [2594:626224] THIS IS DATA {
> body = "04-11-2016 12:54\n";
> endswaptime = "13-12-2016 21:54";
> name = Brittany;
> "node_title" = "Title!";
> "published at" = "Friday, October 28, 2016 - 23:55";
> swaptime = "04-11-2016 12:54";
> targetuser = 93;
> uid = 47; } 2016-10-28 21:37:16.197688n [2594:626224] Message Received at Friday, October 28, 2016 - 23:55 2016-10-28
> 21:37:16.198268 [2594:626224] THIS IS DATA {
> body = "why";
> endswaptime = "<null>";
> name = Brittany;
> "node_title" = "Re:";
> "published at" = "Friday, October 28, 2016 - 23:50";
> swaptime = "<null>";
> targetuser = 93;
> uid = 47; }
:とfield_swaptimeはいくつかのケースではデータを持っており、他ではヌルであっても、同じカスタムセルがすべての結果のために使用されている - ここで
は、「データ」(self.messages)が出してくれるものですそして、ここに私のコードです:
.M
- (void)viewDidLoad {
[super viewDidLoad];
static NSString *ChatTableIdentifier = @"ChatTableViewCell";
static NSString *ChatTableIdentifier2 = @"SwapDetailTableViewCell";
UINib *nib = [UINib nibWithNibName: ChatTableIdentifier bundle:nil];
[self.tableView registerNib:nib forCellReuseIdentifier: ChatTableIdentifier];
UINib *nib2 = [UINib nibWithNibName: ChatTableIdentifier2 bundle:nil];
[self.tableView registerNib:nib2 forCellReuseIdentifier: ChatTableIdentifier2];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *ChatTableIdentifier = @"ChatTableViewCell";
static NSString *ChatTableIdentifier2 = @"SwapDetailTableViewCell";
NSDictionary *data = [self.messages objectAtIndex:indexPath.row];
if (![data objectForKey:@"field_swaptime"]) {
NSLog(@"THIS IS DATA %@", data);
ChatTableViewCell *cell = (ChatTableViewCell *)[tableView dequeueReusableCellWithIdentifier:ChatTableIdentifier forIndexPath:indexPath];
NSString *userName = [data objectForKey:@"name"];
[cell.sendingUser setText:userName];
NSString *messageBody = [data objectForKey:@"body"];
[cell.messageDisplayed setText:messageBody];
NSString *timeReceived = [data objectForKey:@"published at"];
NSLog(@"Message Received at %@", timeReceived);
[cell.timeStamp setText:timeReceived];
return cell;
}
else {
SwapDetailTableViewCell *cell = (SwapDetailTableViewCell *)[tableView dequeueReusableCellWithIdentifier:ChatTableIdentifier2 forIndexPath:indexPath];
NSString *Time = [data objectForKey:@"field_swaptime"];
NSLog(@"This is time %@", Time);
[cell.startTime setText:Time];
NSString *TimeEnd = [data objectForKey:@"field_endswaptime"];
[cell.endTime setText:TimeEnd];
return cell;
}
}
なぜ「field_swaptimeにデータがあるのに」*と言いますか?あなたの質問のデータ出力には、 'field_swaptime'というキーのインスタンスが1つしかありません。 'swaptime'のいくつかの例がありますが、' field_swaptime'の例はありません。 – rmaddy
...あなたは私の質問にちょうど答えたかもしれません。奇妙ですが、データを "swaptime"に投稿するときは、 "field_swaptime"を使用します(これは私が投稿しているDrupalフィールドの完全名です)。しかし、おそらく私はちょうど "swaptime"このインスタンスで使用する必要がありますか?試してみる。 –
あなたはその変更を行う必要がありますが、それでも助けにはなりません。 'swaptime'値の1つに対して' NSNull'インスタンスがあるので、新しい問題が発生します。 – rmaddy