Я путаюсь с тем, как обращаться с целыми числами в цели C.
Если я определю следующее:
NSInteger i = 6;
NSLog(@"%d", i);
Я ожидаю, что он выведет 6 на консоль.
однако у меня есть NSInteger внутри объекта, который, очевидно, является указателем по указателю, поэтому я получаю очень разные результаты.
Например:
@interface Section : NSObject {
NSInteger Id;
}
@property (nonatomic, assign) NSInteger Id;
Пожалуйста, предположите, что это было синтезировано в реализации.
Я создаю объект, устанавливаю его значение и снова обращаюсь к нему следующим образом:
Section *section = [[Section alloc] init];
section.Id = 6;
NSMutableArray *sections = [[NSMutableArray alloc] init];
[sections addobject:section];
Section *sectionB = [setions objectAtIndex:0];
NSLog(@"%d", sectionB.Id);
Это имеет странный эффект печати адреса памяти, то есть числа типа 5447889. Почему я не могу просто получить значение?
Я пытался использовать:
NSInteger sid = [[section Id]integerValue];
Но затем я получаю предупреждение Недопустимый тип получателя 'NSInteger' и иногда получаю ошибку Программа получила сигнал: "EXC_BAD_ACCESS".
Мне бы очень хотелось узнать, как правильно обращаться с целыми числами или любыми значениями по этому вопросу.
Большое спасибо