Выпуск Objective C одиночных элементов

Вот что я использую большую часть времени без необходимости x64.nsh

Var Bit
System::Call "kernel32::GetCurrentProcess()i.s"
System::Call "kernel32::IsWow64Process(is,*i.r0)"
StrCmpS [110] 0 +3
StrCpy $Bit 64
Goto +2
StrCpy $Bit 32

Теперь $ Bit содержит 64 или 32, которые можно использовать так:

${If} $Bit == 64
     ...64-bit code..
${Else}
     ..32-bit code...
${EndIf}

Или

StrCmpS $Bit 64 SixtyFour ThirtyTwo

SixtyFour:
    ...
    Goto End
ThirtyTwo:
    ...
End:

Я использовал StrCmpS, так как считаю, что это на волос быстрее. Лол. Надеюсь это поможет! =)

5
задан Linger 4 September 2012 в 18:17
поделиться

2 ответа

Когда вы создали экземпляр конфигурации с помощью «_instance = [Configuration alloc]; [_instance initConfig];» он имел счетчик удержания, равный единице из вызова alloc. Если вы должны выпустить conf после "conf.cellPhone = self.phoneNumber.text;" тогда он будет освобожден в этот момент.

Когда вы впервые создаете объект с помощью alloc, copy или mutableCopy, он будет иметь счетчик сохранения, равный 1. Каждый вызов сохранения увеличивает этот счетчик сохранения на единицу. Каждый вызов release уменьшает счетчик удержаний на 1. Вызов autorelease просто означает «Call release for me later», поэтому, если удержания и выпуски похожи на проверки, автоспуск - как будущие проверки датировки.

Ваш код, который обращается к синглтону Configuration. не сохраняет его, не копирует или не копирует изменяемым образом, поэтому освобождать его не следует.

8
ответ дан 13 December 2019 в 22:15
поделиться

Вам не нужно освобождать переменную conf , поскольку вы не сохранили ее.

Как правило, вам необходимо сбалансировать вызовы методов, которые увеличивают счетчик удержания, с методами, которые его уменьшают.

init , keep , увеличивает его, а release уменьшает его.

main _instance освобождается, когда класс выгружается, поэтому я думаю, вам не нужно об этом заботиться.

2
ответ дан 13 December 2019 в 22:15
поделиться