Я создал текстовое поле, используя раскадровку , и пытаюсь настроить делегатов. Процесс выглядит простым и обратный вызов вызывается, когда я ожидаю, но мой пользовательский объект, который я пытаюсь инициализировать в обратном вызове, похоже, не инициализируется. Я полагаю, что соответствующие биты кода находятся в ViewController для представления, содержащего текстовое поле, и в пользовательском объекте.
Как ни странно, в отладчике я вижу свойство на self.feed
, которое имеет правильные методы, но я не могу войти в систему из его инициализатора, что меня сильно смущает.
Вот обратный вызов для текстового поля:
-(BOOL) textFieldShouldReturn: (UITextField *)textField {
NSLog(@"Begin feeding."); // This logs
NSURL *path = [NSURL URLWithString: @"http://feeds2.feedburner.com/hackaday/LgoM"];
self.feed = [[Feed alloc] initWithContentsOfURL: path];
NSLog(@"Should have a feed."); // So, does this.
[textField resignFirstResponder];
return YES;
}
Вот интерфейс Feed
:
#import <Foundation/Foundation.h>
#import "FeedItem.h"
#import "FeedParser.h"
#import "FeedParserDelegate.h"
@interface Feed : NSMutableArray <NSURLConnectionDelegate, FeedParserDelegate>{
BOOL isValidFeed;
FeedParser *parser;
NSMutableData *xmlData;
NSURLConnection *connection;
}
@property (nonatomic, retain) NSString *name;
@property (nonatomic, retain) NSURL *link;
@property (nonatomic, retain) NSURL *url;
@property (nonatomic, retain) NSString *description;
- (id) initWithUrl: (NSURL *) url;
- (BOOL) isValidFeed;
- (void) _populate;
- (void) _fetchData;
@end
И, наконец, я надеюсь, что инициализатор будет вызван, но, похоже, не будет:
#import "Feed.h"
@implementation Feed
@synthesize name;
@synthesize link;
@synthesize url;
@synthesize description;
- (id) initWithUrl: (NSURL *) feedUrl{
NSLog(@"initing with NSUrl"); // This never logs.
self = [super init];
if (self) {
self.url = feedUrl;
[self _populate];
}
return self;
}
По сути, мой желаемый результат - получить initing with NSUrl
для входа в консоль.
Любая помощь будет принята с благодарностью. Пожалуйста, дайте мне знать, если есть другие важные детали, которые я должен опубликовать (я, очевидно, новичок в iOS).