Я знаю, что схожу по ссылке, и я уверен, что в этом и заключается моя проблема, но я не могу этого понять. (также может быть структура или более правильный способ сделать это, который я открыт для предложений)
CrestronControllerValues это просто класс получения и установки
я инициализирую и передаю его моему делегату приложения:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSArray *keys = [NSArray arrayWithObjects:@"IPaddress", @"PortNumber", nil];
NSArray *objs = [NSArray arrayWithObjects:@"10.8.30.111", @"41794", nil];
NSDictionary *dict = [NSDictionary dictionaryWithObjects:objs forKeys:keys];
[defaults registerDefaults:dict];
CrestronControllerValues *CCV = [[[CrestronControllerValues alloc]init]autorelease];
[CCV setIPID:3];
[CCV setIPaddress:[defaults stringForKey:@"IPaddress"]];
[CCV setPortNumber:[defaults stringForKey:@"PortNumber"]];
cClient = [[CrestronClient alloc] initWithCCV:CCV];
как видите, последняя строка передает его другому классу
это где моя проблема вступает в игру
если я пытаюсь использовать getipaddress или getportnumber, я получаю плохой доступ
- (id)initWithCCV:(CrestronControllerValues *)ccv
{
[super init];
CCV = [CrestronControllerValues alloc];
CCV = ccv;
port = [[ccv getPortNumber] intValue];
ip = [ccv getIPaddress];
NSLog(@"ip %@ ~ port %@", ip, port);
return self;
}
Я пробовал несколько способов, в том числе
cClient.ccv = ccv (в отличие от отправки его с помощью init)
попытался добавить геттер для себя, чтобы он был cClient = [[CrestronClient alloc] initWithCCV: [CCV getSelf]];