Что объясняет лучше всего различие между [myVar dealloc] и [myVar выпуск]?

Вам не нужен дикт, чтобы сопоставить индексы с буквами. Сама строка уже может быть проиндексирована по буквенным индексам. Вы должны перетасовать индексы вместо букв, чтобы можно было перебирать перетасованные индексы, чтобы разоблачить соответствующие буквы одну за другой:

import time
import random

word = 'administrator'

indices_shuffled = list(range(len(word)))
random.shuffle(indices_shuffled)
letters = ['_'] * len(word)
for i in indices_shuffled:
    letters[i] = word[i]
    print(''.join(letters))
    time.sleep(1)

Пример вывода:

_d___________
_d_____t_____
_dm____t_____
_dm__i_t_____
_dm__ist_____
_dm__ist_a___
_dm__ist_a_o_
adm__ist_a_o_
admi_ist_a_o_
admi_istra_o_
admi_istra_or
administra_or
administrator
7
задан Thanks 7 April 2009 в 12:25
поделиться

2 ответа

Это точно правильно.

Но Вы не использовали бы dealloc, при использовании объекта, потому что Вы не знаете, каково сохранить количество. И при этом Вы не заботитесь. Вы просто говорите, что Вам больше не нужен он путем вызова release. И после того как никто не делает, объект будет звонить dealloc на себе.

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

Все исправляют, но одна ключевая суть, которую Вы упускаете, - то, что Вы никогда не должны называть dealloc сами. Вот некоторая информация из документации Apple относительно dealloc метода NSOBJECT:

(из http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/nsobject_Class/Reference/Reference.html#//apple_ref/occ/instm/NSObject/dealloc)

Вы никогда не отправляете сообщение dealloc непосредственно. Вместо этого dealloc метод объекта вызывается косвенно посредством выпуска метод протокола NSObject (если результаты сообщения выпуска в получателе сохраняют количество, становящееся 0). См. Руководство по программированию управления памятью для Какао для получения дополнительной информации об использовании этих методов.

Подклассы должны реализовать свои собственные версии dealloc для разрешения выпуска любой дополнительной памяти, использованной объектом — таким как динамично выделенное устройство хранения данных для данных или переменных экземпляра объекта, принадлежавших освобожденному объекту. После выполнения определенного для класса освобождения метод подклассов должен включить версии суперкласса dealloc через сообщение к супер:

7
ответ дан 6 December 2019 в 09:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: