Эй, ребята, у меня возникли проблемы с добавлением NSURL к массиву и прокруткой через них. Вот соответствующие части моего кода:NSMutableArray initWithObjects Not Working
RSS_ReaderAppDelegate.h:
@interface RSS_ReaderAppDelegate : NSObject <UIApplicationDelegate> {
UIWindow *window;
UINavigationController *navigationController;
NSDictionary *RSSFeeds;
NSMutableArray *RSSFeedURLs;
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet UINavigationController *navigationController;
@property (nonatomic, retain) NSDictionary *RSSFeeds;
@property (nonatomic, retain) NSMutableArray *RSSFeedURLs;
RSS_ReaderAppDelegate.m:
@implementation RSS_ReaderAppDelegate
@synthesize window;
@synthesize navigationController;
@synthesize RSSFeeds, RSSFeedURLs;
#pragma mark -
#pragma mark Application lifecycle
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
NSURL *url1 = [[NSURL alloc] initWithString:@"http://<some url>"]; //real URL has been hidden
NSURL *url2 = [[NSURL alloc] initWithString:@"http://<some other url>"]; //real URL has been hidden
[RSSFeedURLs initWithObjects: url1, url2, nil];
[url1 release];
[url2 release];
for (NSURL *url in RSSFeedURLs) { //jumps right over this for loop
NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithContentsOfURL:url];
XMLParser *parser = [[XMLParser alloc] init];
[xmlParser setDelegate:parser];
//Start parsing the XML file.
BOOL success = [xmlParser parse];
if(success)
NSLog(@"No Errors");
else
NSLog(@"Error(s) encountered");
}//for
// Add the navigation controller's view to the window and display.
[window addSubview:navigationController.view];
[window makeKeyAndVisible];
return YES;
}
Так [RSSFeedURLs initWithObjects: url1, url2, nil];
, кажется, не делает ничего, как, когда я бегу отладчика и введите «po RSSFeedsURLs», он сообщает: «Не удается получить доступ к памяти по адресу 0x0», и поэтому цикл for никогда не вводится. Я понятия не имею, почему это так, может ли кто-нибудь пролить свет на эту ситуацию для меня? Заранее спасибо.
Глупо меня! Не могу поверить, что я этого не видел! И да, вы правы в отношении соглашения об именах переменных, спасибо за то, что указали это тоже. :) – Stunner
Согласно правилам именования кода Apple для Cocoa: «Для имен методов начинайте с буквы нижнего регистра и заглавные буквы первой буквы встроенных слов. Не используйте префиксы. ** Исключением из этого руководства являются имена методов, которые начинаются с известный аббревиатура, например, TIFFRepresentation (NSImage) **. Либо это, либо заклинание: richSiteSummaryFeedURL или, скорее ,SimpleSyndicationFeedURL, но я думаю, что RSS хорошо известен, чтобы использовать его как есть. – zrxq