Немного не по теме, но я бы советовал использовать guard для проверок, выполнение которых необходимо для дальнейшей работы функции (вместо if). Это позволит отделить выходы из функции из-за, скажем, неверных входных данных, а также поможет придерживаться правила keep the happy path to the left, то есть код, который выполняется в случае прохождения всех проверок не будет задвинут куда-то вправо бесконечными вложенными блоками if {}. Например:
guard status == .Authorized else { return }
// Зеленый свет
… Вместо
if status == .Authorized {
// Зеленый свет
}
A также:
guard #available(iOS 9.3, *) else {
// сдаём назад
openInItunesStore()
return
}
// всё отлично
let player = MPMusicPlayerController.systemMusicPlayer()
player.setQueueWithStoreIDs(ids)
player.play()
… Вместо:
if #available(iOS 9.3, *) {
// всё отлично
let player = MPMusicPlayerController.systemMusicPlayer()
player.setQueueWithStoreIDs(ids)
player.play()
}
else {
// сдаём назад
openInItunesStore()
}
Не хочу показаться граммар-наци, но ваша статья просто кишит ошибками, и это очень отвлекает от чтения. Уровень доверия к информации в такой статье не очень высокий — создаётся впечатление, что её писал кто-то, ещё не доросший до ЕГЭ. А ведь в дизайне UI/UX важно внимание к деталям, странно, что вы упускаете такие важные мелочи.
В моем случае цена также покрывает минусы полностью, все дело в целевой аудитории — я такой же месяц назад купил, и тоже маме; она осталась более чем довольна.
Ведущий не может открыть выбранную Вами дверь, какой бы она ни была — выйгрышной или нет. Поэтому последующие эксперименты нельзя рассматривать как независимые.
Трюк не в этом, Вы ошибаетесь. При открытии каждой «неверной» двери вероятность «выйгрышности» оставшихся — увеличивается. Вашу первоначальную дверь ведущий не затрагивает, какой бы она ни была (выйгрышной или нет) — поэтому и нельзя рассматривать последующие эксперименты как новые и независимые. Ну а вероятность того, что Вы изначально выбрали правильную дверь — 1/N, где N — это количество дверей.
Согласен, интересно:) Можно было бы добавить сюда еще несколько вероятностных «парадоксов» — навскидку вспомню только парадокс Дней рождений… Хотя парадокс Монти-Холла, пожалуй, самый наглядный для применения в реальной жизни.
На мой взгляд, лучше всего понимание задачи Монти Холла дает аналогичный, но более наглядный пример с сотней дверей и девяносто девятью разговорниками, в этом примере, после первого выбора игрока, ведущий открывает 98 «невыйгрышных» дверей. В итоге легко проследить, как вероятность выйгрыша «переходит» из каждой открываемой ведущим двери в единственную им нетронутую.
В любом случае, во время поворота можно будет немного уменьшить поддув — с такой массой сцепление будет хорошее, и затормозить и повернуть получится :)
SIP-звонилка Siphon. Правда, насколько я знаю, без дополнительных изменений в коде в AppStore ее выложить не получится из-за присутствия приватных фреймворков, но она интересна как неплохой пример использования open-source библиотеки pjsip.
В общем-то да, проверьте на ad-hoc на айфоне, если есть такая возможность.
Чтобы классы специфичные для 3.2 компилировались для айфона тоже — попробуйте выставить base sdk в 3.2, а потом поэкспериментируйте с настройками таргета. Думаю, решение кроется где-то там.
Сейчас XCode под рукой нету, но насколько я помню просто выбираете при билде в выпадающем меню «симулятор 3.1.3» для айфона и «симулятор 3.2» для айпада. А в настройках Base SDK ставите 3.2.
Немного не по теме, но я бы советовал использовать
guard
для проверок, выполнение которых необходимо для дальнейшей работы функции (вместоif
). Это позволит отделить выходы из функции из-за, скажем, неверных входных данных, а также поможет придерживаться правила keep the happy path to the left, то есть код, который выполняется в случае прохождения всех проверок не будет задвинут куда-то вправо бесконечными вложенными блокамиif {}
. Например:… Вместо
A также:
… Вместо:
Довольно странно читать это в обзоре iOS 7 для iPad, т.к. предыдущей беты для iPad попросту не было :)
В любом случае, во время поворота можно будет немного уменьшить поддув — с такой массой сцепление будет хорошее, и затормозить и повернуть получится :)
Чтобы классы специфичные для 3.2 компилировались для айфона тоже — попробуйте выставить base sdk в 3.2, а потом поэкспериментируйте с настройками таргета. Думаю, решение кроется где-то там.