Делает [NSMutableDictionary setValue: значение forKey: ключ] сохраняет ключ NSString?

Это все addEventListener утверждение является условным, что эквивалентно действию:

true && true;

Он ничего не делает. Добавьте оператор if (также убедитесь, что вы передаете ev.target в calc в качестве аргумента:

function calc(target){
    if (target.value.length > 0){
        console.log("hooray");
    };
};

if (aV) {
    a.addEventListener("keydown", function(ev){
        if(ev.keyCode == 13){
            calc(ev.target);
        };
    });
}
6
задан Quinn Taylor 9 July 2009 в 23:29
поделиться

2 ответа

Это очень распространено в Какао для NSString параметры, которые будут скопированы вместо сохраненного. Поэтому Вы, возможно, так же, как легко привели словарю пример NSMutableString. Поскольку значение строки могло измениться, NSDictionary делает копию.

Но, независимо от как NSMutableDictionary действительно работает, Вы не должны волноваться ли character потребности, которые будут сохранены. После того как Вы передали его NSMutableDictionary в качестве параметра это действительно, что проблема класса, чтобы решить, как хранить данные, если документация конкретно не говорит Вам, что сохранение объектов является Вашей ответственностью.

Я также не волновался бы слишком много о retainCount из любого объекта. После сохранить количества объекта слишком тесно может привести Вас вниз кроличьи норы, которые просто заставляют Вас вращать свои колеса.

Наконец, я действительно не думаю, что необходимо создать собственное объединение автовыпуска здесь. Если Вы не знаете с абсолютной уверенностью это theString будет очень длинным, или Вы уже наблюдали высокую загрузку памяти в Инструментах, добавляя, что пул автовыпуска является ненужной оптимизацией.

8
ответ дан 9 December 2019 в 20:49
поделиться

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

Вы также не должны волноваться о том, почему сохранить количество не то, что Вы ожидаете. Возможно, платформа Основы имеет подобные Боксеру наилегчайшего веса экземпляры загрузки отдельного символа NSString экземпляры. В любом случае, если у Вас будет управление памятью, корректное следующий за инструкциями, то Вы будете в порядке независимо от какой выполнение платформы негласно. http://iamleeg.blogspot.com/2008/12/cocoa-memory-management.html

4
ответ дан 9 December 2019 в 20:49
поделиться
Другие вопросы по тегам:

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