iOS 7 の GM バージョンをインストールし、アプリを iOS 7 にアップデートするために必要なすべてを正常にアップグレードしましたが、NSDate に関連してトラブルシューティングできないことが 1 つあります。iOS 6 では正常に動作していましたが、iOS 7 では動作しません。
TheItem.m という名前の 1 つのファイルで、次のことを行っています。
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
NSLog(@"TIMEEEEEEEEEEEEEEE %@", currentString);
[self setPubTime:currentString];
}
次に:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"ItemsCell";
//ItemsViewCell Is class of UITableViewCell having the IBOutlet pubTimeLabel
ItemsViewCell *cell = (ItemsViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
TheItem *item = [[channel items] objectAtIndex:[indexPath row]];
cell.pubTimeLabel.text = [item pubTime];
// NSLog(@"PUB PUB %@", item.pubTime);
return cell;
}
NSLogs には日付文字列が表示されていますが、tableviewcell には表示されていません。iOS 6 では正常に動作していましたが、iOS 7 に更新して以来、tableviewcell に日付文字列を表示するはずのラベルに何も表示されません。iOS Dev Forum で同じ質問をしてみましたが、受け取った回答に基づいて、iOS 7 の更新の問題ではありません。
誰が何が間違っているのか指摘できますか? 前もって感謝します。
更新:デバイスに iOS 7 GM をインストールした後、App Store から、同じプロジェクトを使用して提出されたアプリの 1 つをインストールしましたが、日付ラベルが表示されません。
更新:トラブルシューティングのために行ったいくつかのことは次のとおりです: NSLogs を使用して、ある時点で nil でないかどうかを確認し、tableviewcell の高さを変更し、新しいラベルを作成し、新しいアウトレットを作成し、背景とセルの画像を削除しました、ラベルのフォントと色を変更し、シミュレーターとデバイスの両方でプロジェクトを試しましたが、それでもうまくいきませんでした。
更新:受け取ったコメントによると、背景や色の問題などがあるようです。さらにトラブルシューティングを行いましたが、色や背景などとは関係ありません。次のコードでは、いくつかの置換を行いました。
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
// [self setPubTime:currentString]; THIS LINE IS REPLACED WITH THE FOLLOWING
NSDateFormatter *df1 = [[NSDateFormatter alloc] init];
[df1 setDateFormat:@"EEE, d MMM yyyy hh:mm:ss ZZZZ"];
NSDate *newDate = [df1 dateFromString:currentString];
NSDateFormatter *df2 = [[NSDateFormatter alloc] init];
[df2 setDateFormat:@"EEE,d MMM yyyy"];
NSString *dateString = [df2 stringFromDate:newDate];
NSLog(@"DATE STRING %@", dateString);
[self setPubTime:dateString];
}
現在、同じラベルに日付が表示されており、ラベルに色や背景の問題がないことを証明しています. この更新されたコードを使用しない唯一の問題は、いくつかのセルに日付が表示され、何も表示されず、null が返されることです。