У меня есть проблема, которую я не могу понять даже после нескольких часов тестирования различных способов достижения того, что мне нужно: Вот код, с которым у меня проблема:
AppDelegate.h
#import <Three20/Three20.h>
#import "NewsRssParser.h"
#import "NewsRss.h"
@class NewsRssParser;
@class NewsRss;
@interface AppDelegate : NSObject <UIApplicationDelegate,NewsRssParserDelegate> {
NewsRssParser * _rssParser;
NSMutableArray * _newsRssArray;
}
@property(readwrite, retain) NewsRssParser * rssParser;
@property(readwrite, retain) NSMutableArray * newsRssArray;
@end
AppDelegate.m
@implementation AppDelegate
@synthesize rssParser = _rssParser;
@synthesize newsRssArray = _newsRssArray;
[...]
- (void)myFunction{
NSMutableArray *dsItems = [[[NSMutableArray alloc] init] autorelease];
for(NSMutableArray *rssItem in self.rssParser.rssItems)
{
NSString * rssItemTitle = [(NewsRss *)rssItem title];
NSString * rssItemAuthor = [@"par " stringByAppendingString:[(NewsRss *)rssItem author]];
NSString * rssItemDescription = [(NewsRss *)rssItem description];
NSString * rssItemLinkUrl = [(NewsRss *)rssItem linkUrl];
NSString * rssItemImageUrl = [(NewsRss *)rssItem mediaUrl];
TTTableMessageItem *tMsgItem = [TTTableMessageItem itemWithTitle:rssItemTitle caption:rssItemAuthor text:rssItemDescription timestamp:nil imageURL:rssItemImageUrl URL:rssItemLinkUrl];
[self.newsRssArray addObject:tMsgItem];
[dsItems addObject:tMsgItem];
}
NSLog(@"AppDelegate/count/rssItems=%d", [self.rssParser.rssItems count]);
NSLog(@"AppDelegate/count/newsRssArray=%d", [self.newsRssArray count]);
NSLog(@"AppDelegate/count/dsItems=%d", [dsItems count]);
}
Когда я запускаю код, мой анализатор RSS работает правильно, и я могу зациклить 10 элементовв self.rssParser.rssItems .Мне нужно получить доступ к этим элементам в другом представлении, чтобы показать их в таблице, поэтому я подготавливаю данные в NSMutableArray * newsRssArray , которые я объявил в своем файле .h
Однако, если я пытаюсьчтобы добавить эти 10 объектов в NSMutableArray * newsRssArray, у меня ничего нет в конце (см. вывод кода в отладчике).Я успешно тестирую свой код, если использую NSMutableArray * dsItems , объявленный внутри моей функции.
Вот вывод gdb:
Attaching to process 47209.
2011-01-29 14:55:24.813 TestApp[47209:207] AppDelegate/count/rssItems=10
2011-01-29 14:55:24.814 TestApp[47209:207] AppDelegate/count/newsRssArray=0
2011-01-29 14:55:24.815 TestApp[47209:207] AppDelegate/count/dsItems=10
(gdb)
Что я делаю неправильно?
Спасибо за вашу помощь!