Я пытаюсь загрузить простой файл plist (с массивом в корне) в UITableView (в первом представлении приложения с вкладками XCode 4.2).Я делал это раньше в других (XCode 3) проектах, но по некоторым причинам кажется, что мой ленивый инициализатор для массива никогда не вызывается.
.h файл:
#import <UIKit/UIKit.h>
@interface NailPolishFirstViewController : UIViewController {
NSMutableArray *myCollection;
}
@property(nonatomic, retain) NSMutableArray *myCollection;
@end
.m файл (соответствующие части)
#import "NailPolishFirstViewController.h"
@implementation NailPolishFirstViewController
@synthesize myCollection;
// ...
- (NSMutableArray *) myCollection {
if (myCollection == nil) {
NSString *path = [[NSBundle mainBundle] bundlePath];
NSString *finalPath = [path stringByAppendingPathComponent:@"database.plist"];
self.myCollection = [NSMutableArray arrayWithContentsOfFile:finalPath];
NSLog(@"Collection size: %@", [self.myCollection count]);
}
return myCollection;
}
// ...
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
NSLog(@"Getting rows ... %@", [myCollection count]);
return [myCollection count];
}
// ...
К файлу xib для этого контроллера прикреплен UITableView, а также dataSource и делегатустановлены на владельца файла.
Когда я собираю и запускаю, numberOfRowsInSection записывает в журнал «Получение строк ... (ноль)», но журнал в моем ленивом инициализаторе для myCollection никогда не отображается.Почему это никогда не вызывается?