Может кто-нибудь прояснить это для меня?
Я создаю приложение для iPad, которое имеет TableViewController, который должен показывать что-то между 1000 и 2000 строк.У меня есть эти NSStrings в синглтоне.
В методе инициализации синглтона я инициализирую массив, содержащий все данные (не обязательно, чтобы это был последний способ - это было просто быстрое копирование и вставка для тестирования)
Я выполнил self.someArray = [[NSArray alloc]initWithObjects:
, за которым последовало большое количество строк, за которым последовал ноль.
, который нормально работал в симуляторе, но вылетел из-за плохого доступа на iPad прямо при запуске приложения
Если я используюудобный метод [NSArray arrayWithObjects:
вместо этого - он отлично работает.
Я посмотрел на инструменты, и общий объем памяти приложения составляет всего около 2,5 МБ.
Теперь я не знаю, почему это работает в одну сторону, ноне другой.
РЕДАКТИРОВАТЬ:
#import "StaticValueContainer.h"`
static StaticValueContainer* instance = nil;
@implementation StaticValueContainer
@synthesize customerRatingKeys;
+(StaticValueContainer*)sharedInstance
{
if (instance == nil){
instance = [[StaticValueContainer alloc]init];
}
return instance;
}
-(id)init
{
if ( ( self = [super init] ))
{
[self initCustomerRatingKeys];
}
return self;
}
-(void)init customerRatingKeys
{
self.customerRatingKeys = [[NSArray alloc]initWithObjects:
@"string1",
....
@"string1245"
,nil
}
, как я уже сказал: он падает на устройстве с self.customerRatingKeys = [[NSArray alloc]initWithObjects:
, но работает с * self.customerRatingKeys = [[NSArray arrayWithObjects...`