Я использую NSXMLParsing и UIPickerView в моем приложении, но я не могу отобразить
данные в представлении uipicker после разбора. Может кто-нибудь помочь мне об этой проблеме.
Я просто хочу знать, как хранить данные в массиве и отображать их в uipickerview.
thnx frnds
Спасибо mahboudz ... Я сделал то, что вы сказали, но это не работает .. на самом деле я проанализировал некоторые данные и сохранил их в nsmutablearray, используя словарь ... и хочу отобразить их в представлении uipicker, но он не работает .. мой код это: -
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict {
if ( [elementName isEqualToString:@"news"] ) {
//msgAdded = [[attributeDict objectForKey:@"added"] retain];//fetch session from message tag.
//msgId = [[attributeDict objectForKey:@"id"] intValue];//fetch id from message tag.
newId = [[NSMutableString alloc] init];
newsTitle =[[NSMutableString alloc]init];
newsOverview = [[NSMutableString alloc]init];
newsOfDay = [[NSMutableString alloc] init];
createdOn = [[NSMutableString alloc]init];
newsDescription = [[NSMutableString alloc]init];
idNews = NO;
ttlNews = NO;
overvwNews = NO;
dyNews = NO;
onCreated = NO;
desNews = NO;
//inFromUserName = NO;
}
if ( [elementName isEqualToString:@"news_id"] ) {
idNews = YES;
}
if ( [elementName isEqualToString:@"news_title"] ) {
ttlNews = YES;
}
if ( [elementName isEqualToString:@"news_overview"] ) {
overvwNews = YES;
}
if ( [elementName isEqualToString:@"is_news_of_the_day"] ) {
dyNews = YES;
}
if ( [elementName isEqualToString:@"created_on"] ) {
onCreated = YES;
}
if ( [elementName isEqualToString:@"news_description"] ) {
desNews = YES;
}
}
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
if ( idNews ) {
[newId appendString:string];
}
if (ttlNews) {
[newsTitle appendString:string];
}
if ( overvwNews ) {
[newsOverview appendString:string];
//NSLog(@"USER_NAME ===== %d",fromUserName);
}
if (dyNews) {
[newsOfDay appendString:string];
}
if (onCreated) {
[createdOn appendString:string];
}
if (desNews) {
[newsDescription appendString:string];
// NSLog(@"MESSAGE ==== %@",chatComment);
}
}
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {
if ( [elementName isEqualToString:@"news"] ) {
//[news addObject:[NSDictionary dictionaryWithObjectsAndKeys:chatSession,@"chatSession",fromUserName,@"fromUserName",chatComment,@"chatComment",nil]];
[messages addObject:[NSDictionary dictionaryWithObjectsAndKeys:newsTitle,@"title",newId,@"id",nil]];
}
if ( [elementName isEqualToString:@"news_id"] ) {
idNews = NO;
}
if ( [elementName isEqualToString:@"news_title"] ) {
ttlNews = NO;
}
if ( [elementName isEqualToString:@"news_overview"] ) {
overvwNews = NO;
}
if ( [elementName isEqualToString:@"is_news_of_the_day"] ) {
dyNews = NO;
}
if ( [elementName isEqualToString:@"created_on"] ) {
onCreated = NO;
}
if ( [elementName isEqualToString:@"news_description"] ) {
desNews = NO;
}
}
и теперь я хочу отобразить содержимое массива в представлении uipicker. то есть objectForKey: @ "newstitle"
я пробовал показывать через следующий код: -
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view
{
UILabel *partyLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 300, 37)];
partyLabel.text= [[messages objectAtIndex:row]objectForKey:@"title"];
partyLabel.font = [UIFont boldSystemFontOfSize:13];
partyLabel.textAlignment = UITextAlignmentCenter;
partyLabel.backgroundColor = [UIColor clearColor];
return partyLabel;
}
но это не работает ... пожалуйста, кто-нибудь может мне помочь ..
Thnx
Кунал