В зависимости от размера вашего списка это может быть наиболее эффективным, если вы используете list.remove (), а не создаете новый список:
l = ["1", "", "3", ""]
while True:
try:
l.remove("")
except ValueError:
break
Это имеет то преимущество, что не создает новый но недостатком является необходимость поиска с самого начала каждый раз, хотя в отличие от использования while '' in l
, как было предложено выше, он требует только один раз на вхождение в ''
(конечно, есть способ сохранить лучшее из обоих методов, но это сложнее).
Похоже, вы неправильно управляете памятью контроллера представления, и в какой-то момент он освобождается, что вызывает numberButtonClicked:
для отправки другому объекту, который теперь занимает память, которую ранее занимал контроллер представления ...
Убедитесь, что вы правильно сохраняете / освобождаете свой контроллер представления.