Я немного играю на своем Linux с Objective-C.На самом деле, я пытаюсь выучить его, и во время работы над этим квестом я застрял.
Вот код:
#import <stdio.h>
#import <Foundation/NSObject.h>
int main(void) {
NSObject *a = [[NSObject alloc] init];
printf("Class retain count: %i\n", [a retainCount]);
printf("Is pointer nil: %i\n\n", (a==nil));
[a retain];
printf("Class retain count: %i\n", [a retainCount]);
printf("Is pointer nil: %i\n\n", (a==nil));
[a release];
printf("Class retain count: %i\n", [a retainCount]);
printf("Is pointer nil: %i\n\n", (a==nil));
[a release];
//printf("Class retain count: %i\n", [a retainCount]);
printf("Is pointer nil: %i\n", (a==nil));
return 0;
}
И это вывод:
Количество сохраняемых классов: 1
Значение указателя равно нулю: 0
Количество сохраненных классов: 2
Значение указателя равно нулю: 0
Класссохранить счет: 1
Указатель ноль: 0
Указатель ноль: 0
Я закомментировал последний printf, потому что он вылетает из программы (я получаю«Ошибка сегментации obj / test», потому что a не установлен в ноль ...).Так что я делаю не так?Почему указатель не установлен на ноль?Он просто сохраняет свое старое значение (до удаления объекта) ...