альтернативы XCode для разработки iPhone? (ИЛИ: как заставить XCode высосать меньше?) [закрытый]

Используйте public_send, если вы хотите динамически вывести имя метода и вызвать его, но все же не хотите иметь проблемы с инкапсуляцией.

user = User.first
user.public_send(:first_name=, 'Ray')

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

User.first.public_send(:first_name=, 'Ray') будет бесполезным, так как вы присваиваете значение объекту User, и этот метод установки не сохраняет значение.
Ваш объект не хранится ни в одной ссылке, поэтому вы потеряете объект, для которого вы выполнили операцию setter для first_name.

Возьмите его в переменную, как user & amp; затем выполните такие операции, чтобы у вас был трек, чтобы позже вы могли сохранить объект user , а также посмотреть, какие изменения вы внесли в эту переменную

41
задан George Armhold 29 April 2009 в 17:15
поделиться

12 ответов

I had the same issue when I first started using it. So, I asked a friend who worked for Apple whether Xcode is really the tool most internal developers use.

He said it was, and his explicit recommendation was just to bite the bullet and get used to it. You might be able to find an alternative, but you'll be fighting this forever instead of building iPhone apps. Sometimes, when you're in Rome, you must do as Romans do.

52
ответ дан 5 July 2019 в 20:31
поделиться

Я действительно не собираюсь принижать ваш вопрос, но VIM, make и gcc прекрасно работают для меня на ВСЕХ языках и платформах. Это один набор инструментов, который (для меня) является наиболее портативным и надежным. Это не красиво, как вам нравится, но оно выполняет работу так же эффективно.

1
ответ дан 5 July 2019 в 20:31
поделиться

I still have some trouble adapting to XCode too, but it's getting better the more I use it. I am using vim for everything else but Cocoa programming.

One thing that I found helpful was putting this Xcode keyboard shortcut list next to my monitor.

For menu items that miss keyboard shortcuts, like "Reformat this code", use these instructions to define your own shortcuts.

6
ответ дан 5 July 2019 в 20:31
поделиться

Хотя это и не настоящая IDE, но если вам нужно расширенное редактирование текста, TextMate чрезвычайно мощен. Он работает с широким спектром языков и имеет пользовательские расширения (связки), которые добавляют много интересных функций. Это особенно хорошо при операциях переформатирования, которые вы описываете. Я использую его для всех видов редактирования текста.

Тем не менее, я делаю все свои разработки для Mac / iPhone в Xcode. Я пробовал другие инструменты, такие как TextMate, но я продолжаю возвращаться к этой IDE. Почти все опытные разработчики Mac, с которыми я встречался, используют XCode, и большинство довольны его функциональностью и компоновкой. Возможно, вам придется приспособиться к дизайну этой IDE, в отличие от Eclipse или Visual Studio. Честно говоря, я не был впечатлен этими IDE (или KDevelop, где я

0
ответ дан 5 July 2019 в 20:31
поделиться

Существует утилита командной строки под названием xcodebuild . Вы можете настроить проект в XCode так, чтобы XCode генерировал все необходимые файлы и все остальное, но вы можете использовать любой внешний редактор, который вам нравится. Все, что вам нужно сделать, это запустить xcodebuild в том же каталоге, что и сам проект Xcode, и он его соберет. Вы даже можете выбрать, какую цель и какую конфигурацию сборки вы хотите использовать из командной строки.

Это немного глупая идея, так как вам придется иметь дело с несколькими IDE, но я делал это иногда потому что иногда мне легче разрабатывать из командной строки.

3
ответ дан 5 July 2019 в 20:31
поделиться

1) В IDE есть инструменты рефакторинга. Вы можете выбрать имя класса или переменной и выбрать рефакторинг для переименования.

2) Используйте ярлыки и дополнительные функции - вы можете быстро переключаться между заголовочными файлами и файлами реализации с помощью Cmd-Alt-Up. Alt-Double Click вызывает документацию для вызова структуры, а Cmd-Double Click переходит к определению переменной или метода.

3) Я обычно использую «найти выбранный текст в проекте», чтобы искать использование метода - Я не уверен, почему это не сработало бы у вас всегда.

4) Если вы хотите найти некоторые интересные проблемы, есть отличный статический анализатор, который вы можете запустить поверх своего кода, CLANG scan-build:

http : //clang.llvm.org/StaticAnalysisUsage.html

5) Я думаю, что IB лучше, чем любой Java-дизайнер GUI, который я когда-либо использовал.

XCode, IB и инструменты вместе на самом деле являются очень мощными инструментами, потратьте время на изучение того, что они могут сделать для вас ...

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

19
ответ дан 5 July 2019 в 20:31
поделиться

В ветке трюков и советов XCode есть несколько реальных жемчужин - я советую вам прочитать их, если вы этого еще не сделали.

5
ответ дан 5 July 2019 в 20:31
поделиться

The ObjectivEClipse project is a new effort to add ObjectiveC support to Eclipse CDT. Its still very young but if anyone here is willing to participate in open source development please take a look.

2
ответ дан 5 July 2019 в 20:31
поделиться

Чтобы по-настоящему полюбить XCode, мне пришлось внести следующие изменения:

  • Переключиться на макет «Все в одном»: это действительно помогло избежать происходящей оконной оргии.
  • Переключите дисплей отладчика на вертикальную компоновку: это сделало отладку намного более приятной.
  • Установлена ​​функция uncrustify и созданы пользовательские скрипты для разблокировки моих файлов (привязанные к команде-1): это значительно упростило редактирование чужого кода, мне нравится пробел и {в новой строке, большая часть кода Objective-C выглядит иначе.

Только эти три изменения будут иметь большое значение для улучшения вашего опыта работы с XCode. Чем больше я им пользуюсь, тем больше мне это нравится. Им все еще нужно улучшить функциональность поиска / замены и повысить скорость добавления / удаления точек останова, но в остальном я очень доволен этим.

4
ответ дан 5 July 2019 в 20:31
поделиться

Я Java-разработчик, и, как и все интересные функции, принесенные плагином Eclipse Java, так что в качестве анальтернатива для извлечения ObjectiveC из XCode, вы можете попытаться придерживаться Java и использовать iSpectrum ( http://www.flexycore.com ). С помощью этого компилятора + плагина Eclipse вы продолжаете разрабатывать на Java, в хорошо известной ценной среде для создания нативных приложений для iPhone!

0
ответ дан 5 July 2019 в 20:31
поделиться

Я предпочитаю vim как единый интерфейс для нескольких языков / платформ. Для тех, кто любит vim , я помещаю это в свой ~ / .vimrc:

"xcode make program
let prg="xcodebuild"
let makepath=$MAKEPATH
let &makeprg="cd ".$BASE.";".prg.' '.makepath
"/Users/user/Project/Classes/stuff.m:46: error: 'somecrap' was not declared in this scope
set errorformat=%f:%l:\ error:%m

Затем, когда я хочу использовать код vim с помощью Visual C ++ в окне Windows:

"Visual C++ 2008 make program
let prg="devenv"
let makepath=$MAKEPATH
"makeprg= cmd /c "devenv /some/path/to/some.sln"
let &makeprg='cmd /c "'.prg.' '.makepath.'"'
"2>c:\cygwin\home\user\proj/blah.cpp(1657) : error C2065: 'blah' : undeclared identifier
set errorformat=%.%#>\ %#%f(%l)\ :\ %#%t%[A-z]%#\ %[A-Z\ ]%#%n:\ %m

Есть несколько необычных способов установите makeprg в зависимости от того, какой тип файла вы редактируете, но я этого еще не сделал. В любом случае, установка makeprg и errorformats в сочетании с : cw должна порадовать любого поклонника vim.Мне все еще нужно отлаживать соответствующую среду IDE, но я могу очень быстро кодировать и компилировать только с помощью vim.

4
ответ дан 5 July 2019 в 20:31
поделиться

Например, нет привязки для "переформатировать этот код" - Кофеиновая кома (OP)

Частичное решение: используйте control-I на одной строке или в выделенной области для переиндентирования.

0
ответ дан 5 July 2019 в 20:31
поделиться
Другие вопросы по тегам:

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