Ну, StringBuffer находится не совсем по мере необходимости в Ruby, главным образом потому что Строки в Ruby изменяемы... таким образом, можно создать строку путем изменения существующей строки вместо того, чтобы создать новые строки с каждым concat.
Как примечание, можно также использовать синтаксис специальной строки, где можно создать строку, которая ссылается на другие переменные в строке, которая делает для очень читаемой строковой конструкции. Рассмотрите:
first = "Mike"
last = "Stone"
name = "#{first} #{last}"
Эти строки могут также содержать выражения, не просто переменные..., такие как:
str = "The count will be: #{count + 1}"
count = count + 1
Вы можете быть уверены, что ваше приложение работает быть убитым хоть какое-то время. Таким образом, защита от выходов подобна exit (0);
требуется .
Однако NSApplication реализует метод -terminate:
.
[NSApp terminate: nil];
должен делать то, что вы хотите.
Обычно я предлагаю публиковать его через -performSelector: afterDelay:
с задержкой от 0,0 до заставить это произойти в начале следующего прохода цикла событий.
Пример:
[NSApp performSelector:@selector(terminate:) withObject:nil afterDelay:0.0];