Обновлено для swift 3.0:
if let context = UIGraphicsGetCurrentContext(){
// Flip the coordinate system
context.textMatrix = CGAffineTransform.identity;
context.translateBy(x: 0, y: self.bounds.size.height);
context.scaleBy(x: 1.0, y: -1.0);
let path = CGMutablePath()
path.addRect(self.bounds)
let str = NSMutableAttributedString(string: "some text goes here...")
// set font color
str.addAttribute(kCTForegroundColorAttributeName as String, value:UIColor.black , range: NSMakeRange(0,str.length))
// set font name & size
let fontRef = UIFont.systemFont(ofSize: 20, weight: UIFontWeightMedium)
str.addAttribute(kCTFontAttributeName as String, value: fontRef, range:NSMakeRange(0, str.length))
let frameSetter = CTFramesetterCreateWithAttributedString(str)
let ctFrame = CTFramesetterCreateFrame(frameSetter, CFRangeMake(0,str.length), path, nil)
CTFrameDraw(ctFrame, context)
}
Я использовал По необходимости в моих последних 3 заданиях (мое текущее задание, я использую Подверсию, которая мне не нравится почти столько же.) я - большой поклонник По необходимости, и перемещающийся из SourceSafe, он будет походить на Нирвану. Просто получение атомарной регистрации будет большим повышением для Вашей компании. Иначе, По необходимости быстро, это имеет хорошие инструменты, и рабочий процесс прост для того, чтобы сделать вещи как слияния и интеграция. Я искренне рекомендую это. Это не может быть все новым и роскошным как последний распределенный VCS, но честно, я предпочитаю клиент-серверную модель для ее скорости, особенно если Вы работаете с людьми в других странах, которые могут иметь медленные соединения с Вами.
Интеграция Visual Studio довольно хороша, но она имеет несколько раздражающих проблем. При выполнении другого По необходимости клиент одновременно (как P4V), это очень плохо при хранении изменений от другого клиента в синхронизации с точки зрения показа, в / чем в настоящее время проверяются файлы. Обычно необходимо закрывать Visual Studio и загружать проект снова, если Вы хотите, чтобы это синхронизировало правильно. Но, синхронизирующее состояние на самом деле не влияет на checkins/checkouts/updates от работы правильно, это просто означает, что в Вас можно дурачить к размышлению, что что-то находится в другом состоянии, чем это на самом деле - в то время как Вы находитесь в Visual Studio. По необходимости клиенты будут всегда показывать корректное состояние, поскольку они синхронизируют постоянно с базой данных.
Кроме того, при случае Вы найдете, что необходимо работать "офлайн" (не подключенный к базе данных Perforce по некоторым причинам) и когда Вы загружаете проект снова в следующий раз, Ваш По необходимости, привязка может быть потеряна, и необходимо будет снова переплести каждый проект индивидуально. Если Вы работаете с решением, которое содержит много проектов, это может быть большой болью в patoot. То же идет для того, когда Вы сначала проверяете решение, связывание с По необходимости необходимо, прежде чем интеграция происходит.
Трудно назвать 900$ на пользователя хорошей функцией.
По необходимости хорошо работает с Visual Studio, включая "офлайновый" режим, где VS сделает Ваши локальные файлы перезаписываемыми и синхронизировать с сервером позже.
Я склонен использовать По необходимости GUI для многих операций (отправляет, diffs), просто, потому что это более быстро/лучше, но процесс IDE, проверяющего вещи, является бесшовным.
По необходимости, по моему опыту, надежно, и лучшее смешало (code+data) продукт управления версиями их, если стоивший не фактор.
Мое самое большое схватывание - то, что производительность сервера в соответствии с Windows состоит не в том, где рядом столь же хороший как под *отклоняют, и если Вы используете *, отклоняют сервер, они официально не поддерживают опцию для нечувствительных к регистру имен файлов (значение, что Вы или воздерживаетесь от поддержки, касающейся ошибок файловой системы, или устанавливаете триггер, который предотвращает людей, добавляющих foo.cpp, если Foo.cpp существует).
Мой другой основной compaint - то, что для некоторых общих операций необходимо вернуться к командной строке, часто передавая функции по каналу вместе. Один пример получил бы список файлов в каталоге, которые не являются объектом управления исходным кодом.
Оба из них являются проблемами, которые отражаются больше над компанией, чем продукт все же. IMO По необходимости знают, что они наверху рынка и таким образом не видят оснований для инвестирования в фиксацию вещей как это.
Хранилище Sourcegear является лучшим SCM для миграции пользователей VSS к.
И его дешевое.
Мы использовали По необходимости в течение хорошо более чем года прежде, чем недавно переключиться на SVN. В то время как я действительно любил инструменты (например, визуальная разность и объединялся и администраторские биты), у нас были некоторые действительно утомительные проблемы с привязкой, как Chris упоминает; иначе интеграция VS является удовлетворительной. В любом случае я нахожу работу с SVN легче и более интуитивной, чем По необходимости. TortoiseSVN (расширение оболочки Windows Explorer) является большим, и мы купили несколько лицензий VisualSVN на интеграцию VS. Вопреки По необходимости, VisualSVN не работает с интерфейсом MS SCC, а скорее непосредственно с клиентом SVN, который я лично рассматриваю как преимущество. По необходимости имеет поддержку многих других Ose, но наши devs не-Windows чувствуют себя более комфортно с SVN также. Если бы мне придется выбрать снова, то я придерживался бы SVN.
У меня есть опыт с помощью По необходимости производная.
Казалось трудным справиться с точки зрения администратора, но было хорошо использовать с точки зрения программиста.
С другой стороны я хорошо разбираюсь в управлении версией командной строки, так не может выступить за интеграцию VS.
Я использовал лично и управлял многими командами в течение нескольких лет, которые делали По необходимости и Visual Studio. Это работает отлично. Может быть несколько глюков привязки/повторного переплетения, но в них обычно легко разобраться - По необходимости, база знаний и/или список рассылки являются хорошим источником информации.
Никогда не имел проблем с использованием командной строки, визуальных клиентов и ЯЗЯ VS одновременно - обновление обычно хорошо работает.
Мы используем по необходимости экстенсивно в компании, включая ветвление для очень крупных проектов, разработку на Sun Solaris и Windows и больше чем 120 пользователях.
Это очень быстро, и Windows GUI (P4V) очень хорош. Интеграция Проводника приемлема. Я отключил интеграцию VS и использую макросы (вызов, например. p4 edit
) редактировать/возвращаться/разность файлы. Интеграция VS является чрезвычайно раздражающей для крупных проектов (наше решение имеет> 130 проектов), но может работать на меньшие проекты.
Я не использовал По необходимости, но я нашел перемещение в Сервер Основы Команды как один из наилучших вариантов при работе с Visual Studio.