Это копия, сохраненная 10 мая 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Objective-C Programming: The Big Nerd Ranch Guide
iOS Programming: The Big Nerd Ranch Guide
iOS 7 Programming Cookbook: Vandad Nahavandipoor
Matt Galloway Effective Objective-C 2.0
Видеокурсы:
https://www.coursera.org/specializations/app-development
https://www.coursera.org/specializations/ios-development
https://www.youtube.com/user/AlexSkutarenko
Swift - Swift - это новый язык программирования для разработки приложений на iOS, OS X и watchOS, который сочетает в себе все лучшее от C и Objective-C, при этом нет ограничений в совместимости с C. Swift использует паттерны безопасного программирования и содержит современные функции, которые помогают сделать программирование легким, гибким и увлекательным.
Платина:
Что выбрать? - свой проект - swift, работа - objective-c.
Официальная телеграм конфа треда - https://telegram.me/joinchat/CUVruAJ8ceAgYkfeqe_LcA
Я так понимаю делаю тебльвьюконтроллер, там кнопкой пугу второй экран где разные параметры, от кнопки там пушу в треттий тейблвью со списком говна.
от ячеек с первого я пушу в отдельное окно со списком где как-то кодом показываю массив из 4-5 видов говна что существует.
Ок, создал проект с кордата, надо будет прочитать про него.
Пока что так примерно накидал интерфейс. Алсо почему в гугле используют несколько навигейшн контроллеров?
А не, в пизду, придется книгу дальше читать, знаний короче не хватает продолжать.
И как их лучше связывать, если класть в разные?
Сейчас у меня все контроллеры в одном и Xcode пиздец как тормозит.
1) сколько влезает в экран или хотя бы немного просматривается по вертикали;
2) как хош, зависит от конкретного ui.
Короче создаю модель AppItems.
Вот вопрос, если у меня у каждогопараметра будет фиксирован лишь тип предмета, но время добавления и прочее свое. То в модели реализуем список массива с типом предметов, верно?
Везде пишут, что нельзя NSView прикрутить к QuickLook.
Но вот на пике все это есть.
Т.е. по сути я там захуярю массив с фиксированным списком вещей, а ту же дату как мне брать? Если она каждый раз разная? Берется vc там в окне вбивается дата, затем она тупо будет в объект вписываться, в объект модели получается ее надо будет писать?
Я просто хочу правильно сразу освоить все модели создания.
И в чем проблема? Вот псевдо-код.
class AppItems {
var items: Array<AppItem>
}
class AppItem {
var type: AppType
var create: NSDate
var count: Int
}
enum AppType {
case Type1, Type2, Type3
}
ебучий свифт но я примерно понял наверное, позавтракаю и покажу
Если я правильно понял и ты используешь кордату то никакого массива нет. Ты в модели данных создаешь entity (сущность) которая соответсвует твоему объекту. Тоесть у него там поля - тип предмета, дата, и остальное. Также крайне желателен уникальный индентификатор каждому объекту, или способ однозначно отличать друг от друга. Соотвественно для этого объекта создаешь класс отнаследованый от NSManagedObject, и связываешь его с сущностью созданой в модели данных. Соотвественно у этого объекта будут пропертя как у сущности - тип предмета, дата, и остальное. Когда тебе нужно добавить - ты создаешь новый объект выставляешь пропертя и все. Если нужно что-то изменить - достаешь нужный объект (вот тут-то и нужен уникальный идентефикатор, но можно конечно и по датам искать и т.п.), изменяешь пропертя и все. Если нужен список объектов то делаешь NSFetchRequest по имени сущности получаешь массив и все. Можно настроить ДЕЛЕГАТ (NSFetchedResultsController) - он будет следить за твоими сущностями и получать сообщения когда добавляются новые, изменяются старые или там удаляются.
>ты используешь кордату то н
Я еще ничего не использую, я еще даже не изучал кордату, думал научусь это делать когда буду это приложение для себя писать. но спасибо за пост. Попробую так потом переделать
Блин, а оказывается это легкая фича, на юутубе глянул, по сути создаем ентити с описанием данных, по нему создается самый обычный класс данными и так хуярим
Notes notes= (Notes) [_arrayNotes objectAtIndex:indexParh.row];
нельзя записать как
Notes* notes= [_arrayNotes objectAtIndex:indexParh.row];
Зачем нам лишний указатель на класс?
а почему нельзя? Компилятор вроде не должен ругаться, должен только предупреждение выдать?
ну а вообще у теюяarrayNotes видимо просто массив. Ты в него можешь запихать все, что пожелаешь.
Если не нравится такой исход то попробуй
Array<YourClass> то есть генерик
Это не лишний указатель, а каст к типу. Такого не должно быть, ты там что-то напутал наверное где-то. Также индекссубскрипт используй: notes = _arrayNotes[indexParh.row];
Я к тому, что никаких ошибок без каста к типу не будет.
Только если ты используешь типизированный массив, то компилятор тебе подскажет, что где-то типы не совпали, но скомпилировать и исполнить даст без проблем.
>в старой манере же.
Что? Я в первом пике на 98 строке по ошибке присвоил строке весь массив.
Если кордата за меня пилит модель, то мне не надо доп модель создавать? Допустим в модели там 3 параметра. 1 стринг, 1 инт и 1 дейт.
Вот теперь вопрос, я вроде как сохраняю из текстфилда в дату. Но я теперь немног не понял как единственный этот стринг мне впихнуть в тейбл.
Получается мне где то все таик надо отдельно делать еще 1 класс модели, откуда я буду из модели кордаты брать данные и фетчить в какой-то санный массив и из этого массива уже заполнять таблицу??
Пиздец сложно получается как-то, не?
> делать еще 1 класс модели
> Пиздец сложно получается как-то, не?
Да. По-другому никак такое не сделаешь. Тебе нужна модель данных в оперативной памяти чтобы ограничить запросы к бд. Контроллер может напрямую лезть в кордату и обойтись без класса модели-контейнера, но это не комильфо. Просто тебе же кор дата для твоей изначальной задачи не нужна же. Если ты просто табличку хочешь сделать. У тебя должна быть модель где в каком-то контейнере ссылки на модельки твоих вещей, должен быть тейблвьюконтроллер который таскает модельки вещей из модели-контейнера и отдает их в тейблвью. Это потом уже если тебе нужно чтобы данные сохранялись нужно подключать кордату, и хранить там.
Сделай сначала без хранения (тоесть без кордаты). Потом допили хранение на плистах (например) или там в обычных файлах, потом сделай на кордате и посмотри что проще.
Круто, спасибо, получается все таки в правильном направлении себе мышление поставил. Алсо еще маленький вопрос. Возникла проблема, раньше когда создавал классы там от вьюконтроллера или тейблвью то генерировался нормальный шаблон типа пика, а сейчас пустая хуита по сути без втюдидлоад, бещ интерфейса наверху и т.д.
Там сам напиши, в чем проблема?
Да от того, дадно хуй сним. Голова кругом от всего, начал делать и запутался, надо было делать прогу снизу вверх, а не сверху вниз
Короче, почему на видосиках и в книжках при создании Сreate NSManagedObjectSubclass создает только huy.h и huy.m с нормальными пропертями, а у меня создает помимо тех двух еще huy+CoreDataProperties, где и лежат эти проперти, а не в тех стандартных huy.h, это нововведение такое?
Короче, вот так я сохраняю данные в кордату, правильно блядь или нет? 1 пик
1)Импортирую ебаную пропертю
2)Прописываю эти проперти
3)В экшене кидаю данные в кордату
Мне вообще обязательно везде в пропертях указывать контекст, модел и персистент в каждом классе?
Второе.
Теперь я хочу вывести эту парашу в тейбл.
Как мне из массива вытаскивать данные? Чтобы я потом их нормально по ячейкам распихал? У меня ненависть от интернета и то как везде разное и противоречивое дается
блядь, делаю все как надо, как написано, пытаюсь сам разобрать нахуй полдня это ебучее говно пытаюсь понять как записать и считать с ебучей кордаты сука пидорасы, везде запутано блядь, пиздец бомбануло
Ну так, разработка под iOS для интелектуальной элиты. Не каждому дано.
храни просто json в файлах и не парься (знаю приложение с >200k скачиваний,
которое так и делало)
>Как мне из массива вытаскивать данные?
Пишешь абстрактный класс, от него наследуешь уже реализацию протокола ArrayValuesProtocol и реализуешь функционал чтения.
Ну а дальше как и тебе ответили - биндишь к своему протоколу и контроллеру: контроллер делегат и никаких проблем. Не забывай только в dealloc'e вызывать очистку буферов промежуточных, чтобы стэк не засорять.
Блядь, обидно, те же алгоритмы и cs я без проблем понимаю, а тут я запутался от изобилия информации.
>>632208
Я вобщем скачал работаю вариант и его и буду редактировать под себя.
Правда у них почему то без managedsubclass сделано, я не знаю насколько это критично, наверное все таки я переутомился.
Coredata хорошо описана у Aaron Hillegass
http://rghost.ru/private/6GzN9xJvZ/9d177a3b66a977aecd2fac6e8f02b688
Вот, ссылка работает 24 часа.
Задание несложное. Там кордата и просто базовые моменты.
Сейчас там срачи, вайпы, мини-драммы, аттеншнвхоринг и прочий флуд.
ОЧЕ хочется увидеть здесь настоящих iOS-разрабов.
> срачи, вайпы, мини-драммы, аттеншнвхоринг и прочий флуд
Это синонимы слова "конфа". Без анонимности нормального общения быть не может. И естемтвенно анонимность его не гарантирует.
Да нифига, от админов всё зависит. Если банхаммером ебашить туда и сюда, то может быть останется мало кого, зато конфа будет какое-то отношение к разработке иметь.
и каждому новому участнику конфы устраивать собеседование, лол.
спасибо!
>Для обсуждения мобильной разработки, iOS и всего связанного
Нахуй надо говорить о кодинге не в рабочее время, а обычные вопросы и в этой конфе обсуждают. если нет вопросом - пиздим, просто ты унылое хуйло, посикал тебе в ебальничек. Как ты вообще на борды попал.
>не пробовал в рабочее время - работать?
this
>p.s. все ваши конфочки хуйня по определению
Не соглашусь, обмен опытом полезен. Просто у них состав конфочек из людей, не имеющих отношения к программированию. Совсем не понятно, зачем вообще ссылку на эту конфу постить в шапке треда. Можно было бы лучше ссылку на слаку засунуть (та, что выше была) или даже на слаку cocoa-developers, чтобы серьезно всё было.
Хакинтош - это установленная OS X на не-эпловский комп. Вместо девайса можно использовать эмулятор, встроенный в XCode. Я так работал месяца 3-4, пока мне мак не выдали за выдающиеся заслуги (шучу, просто я заебался хакинтошить и забрал комп начальника).
- Э, слышь, ты чё за маком сидишь, пидор штоле? Давай сюда. О, заебись.
>слаку засунуть
Скуче\ное говно от хуесосов, которые тоже ничем не занимаются, к тому же еще и дохлая конфа.
>слаку cocoa-developers,
анальные ограничения, там даже блядь мат запрещен
Так это ты хуесос тут ноешь, мол конфа хуевая кококо одно говно, надо новую серьехную создавать! Вот и пиздуй в свой петушиный уголок. Есть конфа сиди - не нравится ->уебывай.
https://developer.apple.com/library/mac/documentation/
Что теперь качать ссаные drm epub из ibooks?
Была...
Теперь остались только pdf на японском
Вот к примеру:
https://developer.apple.com/jp/documentation/KeyValueCoding.pdf
Если же заменить в адресе jp на en то пишет что страница не найдена.
В iBooks только HIG и Obj-C/Swift книжки от эппл, а https://itunes.apple.com/us/author/apple-developer-publications/id409921415?mt=11
У меня iBooks открывает белую пустую страницу.
>alloc init от new?
конкретно между
ƒ = [F new];
и
ƒ = [[F alloc] init];
никакой.
А если захочешь повыебываться типа
ƒ = [F alloc];
ƒ = [ƒ init];
то это другой вопрос
Почему при работе с подсами надо открывать воркспейс, а не xcodeproj?
Так если потом проект открыть он не определить под, только если воркспейсом
Если используется воркспейс (это не обязательно, только тебе прийдется вручную подключать библиотеку в проект) то библиотека не интегрируется в сам проект, а хранится где-то отдельно. Таким образом в воркспейс можно добавить несколько проектов и все они будут использовать одну библиотеку. Но уже нужно загружать воркспейс что-бы все подключилось.
Так в проджекте нихуя не работает, делаю pod init, пишу нужные мне поды, пишу pod install
http://www.informit.com/authors/bio/2923E8FF-1126-4011-9793-4C6731BF6FD3
>>636756
Я же не индусская макака чтобы это кривое говно с вырвиглазный шрифтом разгребать.
Все API реально ограничивается методам canEvaluatePolicy / evaluatePolicy?
Ничего больше я сделать не смогу (типа создать отдельный образец для моей программы)?
>Я же не индусская макака чтобы это кривое говно с вырвиглазный шрифтом разгребать.
>читает книженции вместо официальной документции
Ну хз.
AFHTTPRequestOperationManager
Тебе нужно импортировать фреймворк, а потом хедер. Вот так:
import <AFNetworking/AFNetworking.h>
Cпасибо, но я разобрался, суть в том что в новом нетворкинге нет такого метода вообще, там юзается сешн менеджер.
Вообще мне нравится урок, интересно такие приложения делать. Но вот беда, я вкатился недавно в кодинг, это нормально что я не понимаю пока как это все работает?
В смысле я понял что получаем и получаем запросы типа объектов, но вот как все это по 10 раз в дикшнрис впихивается и прочее - со временем ведь такое пройдет?
Как у тебя глаза не вытекают, от белого фона на весь экран? Монитор небось как прожектор светит.
Нейтральный серый.
А почему должны вытекать? Зрение 1.0
App-development не подразумевает конкретной (или просто одной) платформы.
Реквестирую сервис с аналогом CloudCode и Jobs у парса
Skype: roba_rus
под андроид лишь дауны кодят которые мак не могут купить, а ебать себя жопу до выхода андроид студии им особенно нравилось. короче платформа для долбоебов.
Если по честному, Xcode (в плане рефакторинга) сосет у Android Studio, да и у Eclipse тоже.
В той же Visual Studio (даже без решарпера) больше функций для форматирования кода.
Советую попробовать адекватную IDE для разработки под iOS (на том же движке что и AS).
https://www.jetbrains.com/objc/
Что это за параша? Она же на яве написана. Пользоваться ява софтом в 2016 на маке - уебанство.
Копировать чужой текст изменяя пару слов - вот уж моветон.
Блядь, я скорее в vim-е писать начну, чем на этом тормозном говне (которое при всём этом по сравнению с xcode простой текстовый редактор).
А смысл тебе что-то объяснять если ты не видишь разницу между IDEA и текстовым редактором...
Интересует фриланс, работа в Мск и области (офис).
Анон, подскажи почему на твоих .xib в IB не отображаются элементы?
>C++ 59,8%
>Swift 36,7%
Кек.
То есть все отличие Swift от Obj-C это использование C++ вместо C в качестве основы?
https://github.com/gnustep/libobjc2
1) Какая связь между языком и конкретным рантаймом?;
2) Это не эпловская реализация рантайма, точно не известно на чём православно-кошерная версия написана;
3) Не понятно почему использован именно C++ - Swift не поддерживает его ABI, всё равно в сишные простыни писать автор видимо из 70-х вылез.
4) Ты ебаное животное, вот.
>Это не эпловская реализация рантайма
https://swift.org/source-code/
>The code for the Swift project is divided into several open-source repositories, all hosted on GitHub.
https://github.com/apple/swift/
Про Objective-C все и так известно
>It’s a superset of the C programming language and provides object-oriented capabilities and a dynamic runtime
https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/Introduction/Introduction.html
Еблан тут только ты.
>
>>The code for the Swift project is divided into several open-source repositories, all hosted on GitHub.
Здесь нету рантайма. Компилятор - да, на крестах. Только на свифте это никак не отображается.
LLVM-бэкэнд кстати на крестах написан, на нём же и обжс работал.
>Про Objective-C все и так известно
К чему ты это вообще написал? У тебя голова через какую пизду работает?
>Еблан тут только ты.
Я конечно понимаю что ты обычный даун на хайпе, скорее всего далёкий от программирования как и 90% пейсателей под моб. платформы, но не настолько же.
>Компилятор - да, на крестах. Только на свифте это никак не отображается.
>LLVM-бэкэнд кстати на крестах написан, на нём же и обжс работал.
https://github.com/apple/swift-clang - тут компилятор
https://github.com/apple/swift-llvm - тут LLVM
>Здесь нету рантайма.
И что там тогда? Просто куча исходников, которые можно скомпилить в непонятный бинарник?
>https://github.com/apple/swift-clang - тут компилятор
>https://github.com/apple/swift-llvm - тут LLVM
Тут их конкретная версия LLVM и Clang, предназначенный только им изветно для чего.
>И что там тогда? Просто куча исходников, которые можно скомпилить в непонятный бинарник?
>The main Swift repository, which contains the source code for the Swift compiler, standard library, and SourceKit.
А теперь наверни https://ru.wikipedia.org/wiki/Runtime
>https://github.com/apple/swift-clang - тут компилятор
>The source code for Clang, with a handful of Swift-specific additions.
Не тот маленько.
без знания SDK можешь разве что мамке хвастаться что ты такой молодца
Почему алертвью не хочет принимать значение, в логах все отлично выводит, а в алерте - (null)
значение из кода очевидно что deyailedser.info
Где я проебался, так-то я нигде не проебался. Везде нормально выводит, а в алерт контроллере null, начал гуглить по этому поводу - ответов на стэке нет
detailed*
message Же должен выводить мне это значние. простой текст то выводит, а объекты нихуя
Значит твой _detailedUserList не существует в момент создания алертвью. Или с .info проблемы. В коде на скриншоте все ок, где-то в другом месте недосмотрел.
Возможно ли закончить анимацию и перейти в completion раньше чем она дойдет до конца?
К примеру если у меня вью улетает за пределы экрана мне нужно сделать if и перейти к completion. Как это сделать?
[UIView animateWithDuration:0.5 animations:^{
ImageView.frame = frame;
if (ImageView.frame.origin.x <= 0)
перейти в completion
} completion:^(BOOL finished) {
[ImageView removeFromSuperview];
}];
Нельзя. Тебе нужно как-то следить за положением вью (KVO например) и когда вью вылезет за экран или просто отменить все анимации, или назначить ему новую анимацию в "правильную" позицию (так чтобы оно не выходило за экран) с очень короткой длительность и правильно выставлеными опциями (основное это включить UIViewAnimationOptionBeginFromCurrentState).
Ой нахер, просчитаю лучше точку.
А нет. Вообще только в конце, прост 2 анимации висело.
Хочу сделать проверялку статуса какого-то удаленного сервера, онлаен он или нет, или может данные какие-то с него считывать короткие (как вариант определения статуса). Так вот, как это сделать? Это вообще просто делается или нужно пердолиться ради такой простой, казалось бы, задачи?
Гуглом уже пользовался, там нашел НЕХ с названием Reachability, как я понял, она проверяет наличие интернетов, но если эту НЕХ можно использовать для моей цели, то собственно как?
Такие дела, пикрандом.
Попробуй пинговать. В общем случае это наверное не решаемо, так как сервер может быть не доступен для обычного внешнего воздействия, тоесть все подключения к нему организуются с помощью специальных логин серверов, а напрямую, к примеру, пинг послать нельзя. Нужно в каждом случае смотреть как определять доступность. Может разработчики сервера предоставляют какое-то API для проверки статуса. Reachability вроде не совсем то, так как там проверяется только возможность отослать данные на сервер, но ответ от него не проверяется.
Ты можешь проверить только ответ на какой-либо запрос, "онлайн" ли сервис это неформально.
1. Берешь любую http библиотеку (http client library)
2. Отправляешь запрос на url на сервере
3. Проверяешь http код ответа (http status code)
4а. Если этот код 200 – сервис онлаен
4б. Если этот код 5хх – сервис оффлаен
4в. Любой другой код – выбирай другой url, этот не годится
мимовебчелядь
Но они генерируемые, и одинаковый в интерфейсе лейаут дает разные xib, формат нечитабельный, куча левой инфы.
Ну и что что "генерируемые"? Открываешь и пишешь свое. Левую инфу не пишешь, прописываешь только то что надо.
а ты в ксибе попробуй добаввь в контроллер табличку и в ней настрой хидер для этой ттаблички из интерфейс билдера без редактирования непосредственно xml кода.
Я вот в новом проекте полностью перелез на Realm https://realm.io/
Уже полгода - полёт нормальный.
На кордате было три проекта - остадочек неприятный остался от кучи прослоек и её стэка.
А с риалмом всё работает гладко и с минимумом ебли.
Еще освоил fastlane tools для бетатеста и выливания скринчиков в аппстор - удобная хуитка.
У самих то какие новости?
Нет. Для этого нужна реальзация фрейморков (foundation, cocoa) под win, а ее нет. Там какие-то хуи что-то пилили вроде, но нормального ничего нет. Есть еще remobjects silver - но там используются системные фрейморки (.NET для win, джавовские для андроида) тоесть общего очень мало.
Перекатился наконец с обжыц в свифт, с нетерпением теперь жду выхода 3.0 и кроссплатформенных тулз, потому что про другие языки можно будет забыть.
Такая-то годнота.
В Айтюнс курсы по Свифту от вшэ и ещё книга Усова
Знаю java se, выбираю куда дальше катиться:ведро или свифт
Не знаю. Раньше андроид был говном, но с появлением студии всё улучшилось.
Мне нужен хороший текстовый гайд по iOS-разработке с примерами в духе "пишем простенькое меню" и т.д., в идеале - на русском.
Что посоветуете?
Пробуй написать что-то. Или попробуй пройтись по iOS Programming: The Big Nerd Ranch Guide, только на свифте пиши. Или иди по оглавлению и гугли какие-то статьи по темам на свифте. Смысл в том что чтобы написать что-то нормальное нужно иметь хотя бы приблизительное представление о том про что в той книге написано.
Склоняюсь к свифту, но переживаю, что по нему не найду достаточно руководств и ответов на стековерфлоу. Как там оно?
Простые приложения писал с использованием сториборда, ну а поскольку не так давно сел за ios, то сразу начал со свифта.
Теперь встала такая задача: нужно научиться делать UI без сториборда, а полностью программно, чтоб автолэйаут работал еще норм, со всеми этими констрейтами. Какие есть годные глубокие туторы на эту тему? На свифте. Ну и чтоб информация актуальная была, то бывает что туторы из 2014-ого года уже не работают.
Да, пиши приложение
https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/TheBasics.html
>>671960
Платиновый вопрос. В ближайшие 2-3 года придётся знать оба, т.к. переходный период.
Если нуб в программировании, то Obj-C концептуально легче.
Да похуй, свифт не свифт. Дай ресуров годных.
Какие еще туторы могут быть? Все тоже самое, только ты как ебанат пишешь все в коде вместо использования IB.
IB иногда подключивает, или имеет какую-тос крытую логику (подчеркиваю - ИНОГДА, но этого достаточно чтоб попробовать проектировать через код). Например если я настрою динамический скролл просто для вьюхи - то ок работает, но если у этой вьюхи будет навигатион контроллер, но скролл уже не работает, либо работает как-то не так. Вот примеры:
http://stackoverflow.com/questions/34663956/scrollview-with-navigation-bar-auto-layout
https://www.reddit.com/r/simpleios/comments/3vpj06/uiscrollview_adds_spacing_the_size_of_the/
Да, им дали какието советы, но они не решили проблему до конца.
Я пришел к тому что все делаю через код, есть корпоративная закрытая библиотека с помощью которой можно накидать интерфейс даже пожалуй быстрее чем с IB и при этом всегда точно знаешь почему и что происходит.
Подскажи хотяб откуда двигаться? Туторы, книги, просто референсы. С IB я пожалуй на среднем уровне работаю, свифт понятен, сам икскод тоже ориенртируюсь.
конечно есть, яблочный swiftbook. Если недостаточно хардкорно то читай блог NatashaTheRobot
Бля, чё за кликбэйт, нет там никакой Наташи!
>по свифу есть хороший учебник
Пока эппл будут каждые пол года релизить новый свифт, нормальных учебников не будет.
>>672537
>яблочный swiftbook
Это не учебник, это справочное пособие для индусских макак.
ебать. у чувака по верхней ссылке проблемы с тем что у него скролл вьюшка прибита сверху к топ лэйаут гайду, а нужно было просто к верху вьюшки.
бесят такие пидоры. лень разбираться с билдером и начинаете хуярить какоето говно в коде. переебал бы
Эх, а бампану-ка я, анонцы. Мне все еще надо наложить эту структурку. Структурка сама себя не наложит. Пока вы молчите, я решил вручную перепедалить весь проект на Objective-C.
Что значит "битовый размер совпадает"? У объектов objC и следовательно скорее всего у свифта куча дополнительной инфы (полей). Их нельзя просто кастом превратить из обычной структуры. Можно попробывать из сишного массива (кастишь структуру в указатель на char или что там) собрать CFArray, его скастануть в NSArray (там специально сделано что кастить можно), а уже его скастить в свифтовский массив. Но скорее всего получится полная хуита. Вся проблема в том что массивы в Foundation предназначены для хранения указателей, тоесть в CFArray (как и в NSArray) нельзя положить чары (или инты) а нужны указатели. Тоесть твою структуру нужно кастить не в указатель на чар, а в указатель на указатели на воид. И дальше жонглировать указателями на войд, и в самом конце попытаться скастить в UInt8. Тоесть последняя строка должна быть что-то типа var swiftArray = nsArray as AnyObject as [UInt8] - но я не уверен что у тебя на каком-то моменте все не наебнется.
http://stackoverflow.com/questions/32606989/converting-an-unsafepointer-with-length-to-a-swift-array-type
это пробовал? если не работает, то пили сюда кодик
>Пока эппл будут каждые пол года релизить новый свифт, нормальных учебников не будет.
Золотые слова. Свифт первый и второй – это разные языки. Сейчас ещё и третий выходит.
>Что значит "битовый размер совпадает"?
То, что количество бит в массиве и в объявленных полях структуры совпадает. Понятно, что там еще куча барахла в объекте будет, я про непосредственно данные в массиве.
Спасибо за то, что ты написал далее. Я убедился в том, что все эта моя затея - полная дичь. Свифт он "как бы не для этого чтоли" (но зачем тогда там такое разнообразие ансейф типов). Я уже все сделал на чистых сях и все прекрасно работает. Мне просто интересно - или это я настолько непроходимый тупорылый баран, что не могу понять 0-day-идеи свифта, либо свифтик не такой уж айс. Получается, не баран.
>>676917
Спасибо, вроде пробовал. Точно не могу сказать, потому что под эту задачу я пробовал слишком много решений stackoverflow, я в них уже запутался.
Выложить кодик - зачем? Выжимка проблемы мной уже озвучена. Никакой доп инфы в кодике нет.
Итоговое решение - отказаться от использования свифт в проекте.
> 0-day-идеи свифта
Ну он просто замена objC а не С. Я точно не знаю, но судя по всему в Apple такая идеология что они не рассматривают objC (и следовательно свифт) как полностью универсальный язык. Я подозреваю что достаточно заметная часть эпловского софта пишется на С (или С++) а objC/swift используется для интерфейса. На это наталкивает распространенность бриджинга разных видов, toll free bridging между типами Core Foundation и Foundation Kit, тоесть можно получить, к примеру NSDictionary из objC кода, обработать его в С коде считая что это CFDictionary, а потом вернуть назад с минимальными затратами. Теже блоки сделаны как расширение С синтаксиса (а не objC) из-за чего у них немного всратый синтаксис, GCD (относительно новая разработка) - сишный фрейморк с которым можно работать из С кода. Тоесть в aplle, наверное, считают что это норма (в том смысле что сами так делают) когда ты основную массу кода пишешь на objC/swift, а некоторые специфические участки выполняешь на С или С++, если нужно.
анончик, я дал тебе ссылку на решение, которое у меня работает. пикрил
Наоборот мне надо.
Смотри как бы это выглядело на сях:
struct data
{
uint32_t num: 4;
uint32_t payload: 4;
uint32_t crc: 4;
uint32_t reserved: 4;
};
uint8_t gameNetworkBuffer[2] = {'x', 'j'};
struct data packet = (struct data)gameNetworkBuffer;
printf("Packet number: %d\n", packet->num);
printf("Packet payload: %d\n", packet->payload);
printf("Packet checksum: %d\n", packet->crc);
Теперь представь, что
struct data
{
uint32_t num: 4;
uint32_t payload: 4;
uint32_t crc: 4;
uint32_t reserved: 4;
};
объявлена в заголовке Objective-C, настроен бридж, а все остальное мне надо повторить в swift.
Наоборот мне надо.
Смотри как бы это выглядело на сях:
struct data
{
uint32_t num: 4;
uint32_t payload: 4;
uint32_t crc: 4;
uint32_t reserved: 4;
};
uint8_t gameNetworkBuffer[2] = {'x', 'j'};
struct data packet = (struct data)gameNetworkBuffer;
printf("Packet number: %d\n", packet->num);
printf("Packet payload: %d\n", packet->payload);
printf("Packet checksum: %d\n", packet->crc);
Теперь представь, что
struct data
{
uint32_t num: 4;
uint32_t payload: 4;
uint32_t crc: 4;
uint32_t reserved: 4;
};
объявлена в заголовке Objective-C, настроен бридж, а все остальное мне надо повторить в swift.
>struct data packet = (struct data)gameNetworkBuffer;
Не могу я в теги. Видно, что курсив сожрал мои указатели.
struct data%STAR% packet = (struct data%STAR%)gameNetworkBuffer;
let gameNetworkBuffer = [UInt8]("xj".utf8)
let packet = UnsafePointer<data>(gameNetworkBuffer).memory
print("Packet number: \(packet.num)")
print("Packet payload: \(packet.payload)")
print("Packet checksum: \(packet.crc)")
вот весь проект
http://rghost.ru/8TcJC9KPs
у меня не падает. мы точно один и тот же код тестим?
Лично я в своем проекте пытаюсь решить проблему. Конкретно валится после вписывания этой строчки
>let packet = UnsafePointer<data>(gameNetworkBuffer).memory
Валится с segmentation fault.
>>678564
Твое решение правильное. Спасибо, добра тебе! У меня валилось из-за объявлений. У меня реальная структура содержит в себе еще структуру, а в той уже указатель. Он объявлен как [0] массив. Из-за этого все валилось. Объявил с символом звездочки - заработало. Спасибо еще раз! Чаю выпей!
Вот несмешная картинка, в качестве "с меня как обычно".
Есть какой-нибудь handbook по передаче данных?
Я еще учусь, но я просто заебся, это какая-то боль.Я просто могу уже продумать всю логику и алгоритм задачи и часа 4 сидеть тупить и сражаться с ругательствами конпелятора
ПЕРЕДАТЬ В МЕТОД БЛОК
@
ПЕРЕДАТЬ В МЕТОД БЛОК, В КОТОРЫЙ ПЕРЕДАЕТСЯ ОБЪЕКТ
@
СДЕЛАТЬ ВИДИМЫМ %NAME ДЛЯ ДРУГОГО КЛАССА
Кстати, это какой процент от работы ИРЛ? Это вообще хоть какие-то значимые вещи/основа или это потом само придет так же рутино, как и объявлять переменные?
Никогда это не придёт. Objective-C был изначально придуман как дальнейшее развитие MacApp и Hypercard на компьютерах NextStep и ни для чего больше предназначен не был. Весь хоть сколько-нибудь серьёзный софт под Mac OS Classic пейсали на Сишке с Посраллем, а для отладки там был отладчик уровня Ассемблера, тем более, что Ассемблер на тех ещё процессорах был более наглядным, чем даже x86, и там всё было наглядно (ну или почти всё).
Счастливо поебаться, в общем.
Подучил чуть Obj C, кое-что разобрал по массивам, объектам, аутлетам, нотификациям, делегатам, анимациям с таймерами, немного по таблицам. Не разбирался с кор датой, потоками, вебом.
Могу ли вкатиться куда-нибудь джуном или меня пошлют как совсем зелёного? Смотрю на то, что умеют иные бояре, руки опускаются от того, как много умеют они и как мало умею я.
>Если сейчас начну учить свифт, то к моменту как я его выучу он уже станет основным языком?
За две недели и в основные языки? Да вряд ли.
Учи оба языка.
>>679440
Сделай апп в стор/опенсорс который загружает данные с сети, кэширует в коредату и показывает в тейбл или колекшн вью. С этим иди и устраивайся джуном.
Пидора ответ
>Objective-C был изначально придуман как дальнейшее развитие MacApp и Hypercard на компьютерах NextStep и ни для чего больше предназначен не был.
Норкоман чтоле? Прочитай хотябы в каком году придуман ObjC. Я уж не говорю о том что Эппл и Некст развивались независимо лет этак десять.
>HyperCard
Было дело, ваял на этой предтече гипертекста цветную аркаду в илитной гимназии после уроков лол
Есть ли какой-то основной вектор и побочные или важно все? Если все, то в каких пропорциях?
Вот проперти из тех, что сразу пришли в голову:
@Знание дохуя фреймворков
@Макро понимание архитектуры проекта и его видение в будущем, оставление места для маневров при масштабирование и роста проекта.
@Алгоритмы
@Структура данных
@Байтоебство
@Микроскилл, умение сделать какой-нибудь одной штуки с изьебистым способом,оверинжиниринг.
Расставьте их в порядке приоритета что-ли и добавьте свои, которые я упустил.
Разница простая. Всё, что работодателю гарантирует, что ты сделаешь проект нужной ему сложности в нужные ему сроки, делает тебя сеньором. Чем дальше от этого, тем ниже ты. Всё.
>Вот проперти из тех, что сразу пришли в голову:
Хуиты понаписал и сидит довольный, которые далеки от реально разработки говна что будет тербовать заказчик
Пока эппл все пишет на objC, CoreFoundation, C ,C++ даже новые программы для El Capitan - Photos и с нуля переписанный Disk Utility - используют objC, а не Swift. Отсюда возникает вопрос, а не фикция ли вся эта шумиха по поводу скорого перехода на Swift?, видимо не оправдались ожидания эппл, раз они написали Photos на objC.
На CoreFoundation, C, C++ в основном фреймворки, библиотеки и драйвера.
Буду со следующей версии свифта писать. на нем, ящитаю. Переход на свифт будет 100%, уже многие поды переписываются на нем.
> Платина:
> Что выбрать? - свой проект - swift, работа - objective-c.
Я тя умоляю. Я уже 3-й проект делаю на свифте - брат жив
Я раньше тоже ненавидел проги на яве за их убогий интерфейс. Но, когда попробовал продукты от JetBrains, другие IDE для меня перестали существовать. Да и интерфейс почти не выдаёт их явовость
[UInt8] же
Ну так как бы самыми главными приложениями они не хотят рисковать, пока язык не стал мачурным. Всё таки, если ось и стандартные приложения начнут глючит - эпла заебут исками да и вообще перестанут покупать.
Думаю, версии к 4-5 начнут переходить. Просто сколько можно кодить на этом говне мамонта - objc
>>692011
Вы перекатитесь на свифт ровно тогда, когда его рантайм будет частью iOS. А пока это говно раздувает вам бинарь на 10+ мб - это пиздец.
У меня приложение в целом весит 10 мб. Решил пару классов на свифте написать и хуяк - 20+ мб.
ЗАЕБИСЬ
Так что перекат на свифт только вложенностью свифт-рантайма и ограничивается.
В частности с AppCode - это говно, по сравнению с xcode, совершенно неюзабельно ни для чего кроме рефакторинга кода, а именно переименования переменных по всему проекты.
С остальными задачами совершенно не справляется
Сколько оперативы нужно, чтобы этот ваш икскод работал на нём без тормозов, и ещё тянул эмулятор?
> эмулятор
Там симулятор - те приложения фактически ставятся в систему и нет вирт. машины, те ресурсов почти не жрет.
Но вот Xcode последней версии это какой-то пиздец, тормозит просто ужасно.
Без быстрого SSD и 4-8GB лучше не пытайся его запускать.
Да 8ми гигов тебе хватит. Если прям совсем выёбываться - можно 16 заебенить.
третий год разрабатываю на хакинтошах
>Там симулятор - те приложения фактически ставятся в систему и нет вирт. машины, те ресурсов почти не жрет.
Лёл. Ресурсы жрёт еще как, особенно при отладке.
На оверфлоу пишут что некоторые тупо добавляют по rgb + параметры на глаз. Такие костыли как по мне это тупость, есть другие причины?
Подскажите, пожалуйста, как исправить.
Каждое устройство выводит цвета по своему. Добится абсолютно идентичного цвета не возможно технически (на нашем уровне технологии). Две только что произведенные соседние жк-матрицы на конвеере будут по разному показывать цвета. Про разных производителей и говорить нечего. Поэтому там где нужна точная цветопередача производят дополнительную калибровку. С помощью колориметра замеряют как именно отображает цвета данный конкретный экземпляр матрицы, загоняют данные в ICC-профиль, и дальше происходит то что ты назвал "тупостью" - перед отображением цвет немного подправляется исходя из данных ICC-профиля чтобы получить именно нужный цвет на данном экране. Обрати внимание что ты имеешь дело с тремя разными цветами. Цвет который ты задаешь для отображения. Цвет который отображает твой монитор. Цвет который отображает устройство.
Так смотри, есть эмулятор, на котором пипеткой смотрю цвет и он не совпадает на моем же аймаке, с тем цветом что я указал в икскоде. Причем тут тогда твоя калибровка, если на одном девайсе происходит действие.
Забыл сказать, что интерфейс билдер правильный показывает же тоже
В XCode не текстом ли задавал?
Если color = [UIColor colorWithRed:...
то не забывай цвета указывать в формате 172/255.0, x/255.0, короч все делить не забывай.
https://kat.cr/ray-wenderlich-7-book-collection-t12262395.html
Да кого сейчас ебут эти 10-20 метров? Даже лимит по скачиванию через сотовую сеть - 50 метров. Если писать для мурики, то им тем более похуй на размер. Для рашки может быть в каких то ебенях и будет смотреть на размер. Но не похуй ли на таких пользователей?
Сейчас там рефакторинги для свифта все поотключали, потому что только допилят их, так выходит новая версия, в котороё всё по-другому. Но должен же он когда-то стабилизироваться. К версии 3 хотя бы. С обжэктивом всё было прекрасно, пока я на нём писал
На моделях 16гб а то и 8гб твое приложение из говнокогда никто ставить не будет, тем более, что если оно не уникальное
>, то им тем более похуй на размер
Вот им как раз не похуй, это у нас моб инет дешевый, а там он пиздец дорогой кстати.
Живу в гейропке, дрочево на трафик есть, в рашке же почти безлимит по мобильному LTE.
А тут - ну, 900 мб можно купить, за 10 евро. А можно 1500мб за 15 евро. Нравится?
А вообще ты мудак. Ибо когда приложение увеличивает вес в два раза с нихуя, только из-за использования нового языка - это хуёво.
Скорее всего ты просто никогда не сталкивался с оптимизацией веса приложения. Ибо даже в заявленном тобой случае с 50мб те 16мб, которые вешает сверху свифт - огромный процент. В 16 мегабайт можно уместить огромное количество графики.
>900 мб можно купить, за 10 евро. А можно 1500мб за 15 евро. Нравится?
До сих пор припейд симку юзаешь что ли? Лол.
Ну ок, вот не препейд, один хер говно, после московской йоты с 450р за анлим.
Лол, ну ты дал конечно сравнивать европейскую часть СНГ, где действительно дешёвый клёвый инет, и остров с ебанистическими ценами.
Ебучий айфон, ебучий свифт, ебучий исккод.
Почему нет нормальный сочетаний клавиш? Как мне сдвинуть курсор на одно слово? Почему стандартные хоткеи для набора текста не работают? Почему ебучие ошибки отображаются только по клику слева, куда почти наверняка втыкается дебажная метка?
Делаю пример по официальному руководству эппл - не работает! Через полчаса ёбли и гугла оказывается, что эти гомосеки не указали, что там-то надо галочку поставить.
Хочу установить популярную простуюбиблиотеку - делаю всё, как указано в их гайде - не работает! Через 2 часа ебли и гугла оказывается, что эти гомосеки не указали, что ебучий икскод может проебать адрес репозитория.
Установил, копирую пример с сайта - 2 строчки - не работает, какая-то хуйня с типами, сука, 3 часа ищу решение, блядь, как же я ненавижу эпл, горите в аду, говноеды маркетинговые.
>Как мне сдвинуть курсор на одно слово
Option+стрелка (или контр+стрелка).
Алсо да, добро пожаловать в iOS кодинг, придающий чудесное ощущение хуя во рту.
Алсо попробуй другие идешки, если уж ты такой нервный
Угу, спасибо, уже и сам нашёл, как и обёртку для ебучего класса.
Пиздец, клавиатура тоже неудобная, я уже не гневаюсь, а грущу, ведь "эпл - это удобство, дизайн", и прочее говно.
Потерпи немножко. Просто надо привыкнуть.
Вот тебе континентальный водафон. Один хуй не анлим, один хуй дорого после москвы.
долбоеб, на MacOsX стандартные хоткеи для перемещения между словами/строками - alt/cmd + стрелка. Такие же и в xcode.
Ты откуда вообще вылез, пидор, раз стандартные хоткеи не знаешь?
>Хочу установить популярную простуюбиблиотеку - делаю всё, как указано в их гайде - не работает! Через 2 часа ебли и гугла оказывается, что эти гомосеки не указали, что ебучий икскод может проебать адрес репозитория.
Ты чем там занимаешься содомит? Установка любой библиотеки производится одной командой в терминале - "pod install".
Какой нахуй репозиторий, какой нахуй икскод?
gem install blablabla
хуйтам! нету рзрешения
Окей, иду на сайт блаблаблы, там та же команда - начинаю гуглить, ебусь, вижу решение через судо:
sudo gem install blablabla
Вбиваю - просит пароль - а у меня нет пароля на юзере, ничего не пишу, жму энтер - "вронг пассворд". Нихуя ж себе, ебусь дальше, пока не нахожу на официальном (!) сайте эппла, что, чтобы выполнить коанду через судо, нужно установить пароль, а потом его ввести.
Пиздец, каким же говном потреблядей кормят, я офигеваю.
>>698868
С кровати твоей мамаши только слез.
Говна въеби, стандартные хоткеи через контрол идут, а не через альт или говнокомманд.
>Какой нахуй репозиторий, какой нахуй икскод?
Вот, блядь, я кокоподы и устанавливал.
>стандартные хоткеи через контрол идут
Долбоеб? контрол года с 2007-го переключает рабочие столы. Стандартные хоткеи на нормальных платформах (mac os) ВСЕГДА были через alt/cmd.
>Вот, блядь, я кокоподы и устанавливал.
пик релейтед (https://cocoapods.org).
Я очень надеюсь что ты уебёшь с нашей няшной платформы разработки куда подальше - подобный скам нам не нужен.
Ну так уйди, не мучай себя. Макось, необходимость ставить хакинтош, платный dev-account - отличный фильтр, повышающий порог вхождения в платформу.
Таким образом зарплаты ios-разрабов никогда не будут демпинговаться понабежавшим быдлом. В отличии от андройда, кстати - вкатиться туда куда проще.
О, шуточки про маму. Очень неплохо позволяет оценить уровень собеседника.
А ты просто съеби. Ты все равно не сделаешь нихуя. А кто-то из нас встретит в вакансиях организацию, чей проект ты завалил, потому что у тебя бомбит от хоткеев, и снова положит в карман топовую оплату в индустрии. А ты иди в привычный notepad++ пиши html, там все твои хоткеи, знакомые тебе по пиратским дискам windows xp.
Да ладно, разве у айосеров и андроидов не одинаковые зп?
У меня был тим лид из Вашингтона - говорил, что у них дешёвый инет. Как в остальной амурике - хз
Просто ты школьник, который бабыюникса не нюхал. Любой нормальный девелопер (кроме .net-щиков), хоть немного знаком с линуксом и знает, как работает sudo
Что за структура у тебя - хз.
Я, например, так конвертировал float массив:
В обжц колбэк объявлен как (float samples, NSRange outRange)
В свифте я этот колбэк объявил как
(samples: UnsafeMutablePointer<Float>, outRange: NSRange) -> Void in
let buffer = UnsafeBufferPointer(start: samples, count: outRange.length);
let floatArray = Array<Float>(buffer)
всё, floatArrat - свифтовый массив.
после float в сишном коде всюду были звёздочки
Там ниже проблему решили. Массив может так и сработает, структура с полями - вызвала боль.
Угол нет, растояние теоритически наверное возможно по силе сигнала, но на практике врядли из-за препятствий.
>через bluetooth
нет
>угол
что такое угол между двумя точками?
>типа "найди свой второй айфон"
гугл радиотриангуляция
Еще один умник. Чтобы по RSSI найти одни айфон, тебе нужно еще 3 других айфона.
Гугли епть радиопеленг, триангуляция, сотовую связь, вычисление курсовых углов, вот это все.
> Чтобы по RSSI найти одни айфон, тебе нужно еще 3 других айфона
Или последовательно вычислить RSSI в трех разных точках, если искомый айфон не перемещается.
- (void)centralManager:(CBCentralManager )central
didDiscoverPeripheral:(CBPeripheral )peripheral
advertisementData:(NSDictionary<NSString ,
id> )advertisementData
RSSI:(NSNumber )RSSI
Advertisement Data Retrieval Keys
NSString const CBAdvertisementDataLocalNameKey;
NSString const CBAdvertisementDataManufacturerDataKey;
NSString const CBAdvertisementDataServiceDataKey;
NSString const CBAdvertisementDataServiceUUIDsKey;
NSString const CBAdvertisementDataOverflowServiceUUIDsKey;
NSString const CBAdvertisementDataTxPowerLevelKey;
NSString const CBAdvertisementDataIsConnectable;
NSString *const CBAdvertisementDataSolicitedServiceUUIDsKey;
>даже в документации написано что по нему можно определять близость устройства
ткни меня в это
>> The advertisement data can be accessed through the keys listed in Advertisement Data Retrieval Keys. You must retain a local copy of the peripheral if any command is to be performed on it. In use cases where it makes sense for your app to automatically connect to a peripheral that is located within a certain range, you can use RSSI data to determine the proximity of a discovered peripheral device.
Да, можно ходить, бегать, прыгать, махать руками по всей квартире, зайти к соседу, покататься на лифте. Чем дольше бегать - тем точнее можно определить телефон. Пробовал карту wifi сетей составлять?
> >через bluetooth
> нет
А через какие технологии можно заюзать? Допустим, интернета через wifi и 3g у обоих айфонов нет.
> >угол
> что такое угол между двумя точками?
Угол, проведенный от точки 2 айфона к вектору с началом в точке 1 айфона и направленного вдоль линии, куда я смотрю (а айфон держу прямо).
> >типа "найди свой второй айфон"
> гугл радиотриангуляция
Гугл плохо осведомлен об этой штуке и предлагает фототриангуляцию.
> Гугли епть радиопеленг, триангуляция, сотовую связь, вычисление курсовых углов, вот это все.
А я как-то могу на практике это заюзать в ios? Это же низкоуровневые вещи, разве есть либы для этого?
>А через какие технологии можно заюзать? Допустим, интернета через wifi и 3g у обоих айфонов нет.
>Гугл плохо осведомлен об этой штуке и предлагает фототриангуляцию.
никак
https://en.wikipedia.org/wiki/Direction_finding
>Угол, проведенный от точки 2 айфона к вектору с началом в точке 1 айфона и направленного вдоль линии, куда я смотрю (а айфон держу прямо).
я понял, просто доебался.
Короче, ни айфон ни андроиды не дадут тебе никаких технических плюшек, которые позволят тебе определить положение телефона какими-то принципиально новыми способами. Фактически через блютус тебе нужно сделать свой мини-аналог GPS или определения положения по сотовым вышкам.
иос тебе дает
NSString const CBAdvertisementDataTxPowerLevelKey;
чтобы сделать остальное - тебе надо учиться радиосвязи
https://developer.apple.com/library/ios/documentation/MultipeerConnectivity/Reference/MultipeerConnectivityFramework/index.html#//apple_ref/doc/uid/TP40013328
Я бы проверил, на что он способен, но беда в том что у меня не то, что 2 айфонов нет, а и одного нет, только эмуль, ибо я нищеброд.
Не поможет. Этот фреймворк на уровне сервисов инфу выдает.
5C
Не выебывайся. У меня нет проблем с чтением на английском, но для легкого освоения я выбираю родной язык. Для остального есть документация в оригинале.
Двачую этого джентльмена.
>стандартные приложения начнут глючит
Лол, они и так глючат после йосемити. Я немного пишу под Мак ОС, начиная с 10.9 качество софта ухудшается в каждой новой версии Мак ОС. В капитане, например, сломано: PDFKit - после открытия PDF - выжирает весь проц [CPPage reconstruct] - эта хуйня тупо блочит main thread и ничего нельзя сделать(в Skim это как-то пофиксили). Такое чувство, что оно просто конвертирует все страницы в файле. Конечно если процессор i7, то подвинет не пару секунд, но на старом C2D буке, это штука заметна. Если же ликовать с PDFKit из OSX 10.9 этой проблемы просто нет.
Новый WKWebView - сломанный к хуям весь.
Appkit/Quartz - в таблицах выжирает проц - бесконечные drawInContext - после __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__
А в 10.9 после CFRUNLOOP_IS_CALLING_OUT... все равномерно распределяется.
Двачую вопрос
Да, можно просто начать с того, что с 7 версии Xcode стал каким-то невыносимо глючным - крэши регулярно.
Он легко в первых версиях 7.х падал при редактировании строки
@property NSArray<NSString(звездочка)>(звездочка) arr;
Что такого продвинутого ты увидел в его трёх скринах стэктрейса и перечислении багов в эппловских фреймворках?
>>702605
Есть такие люди, у которых в любой ОС постоянно что-то не работает.
А есть такие (например, я), у которых в личном парке 3 мака под ил капитаном, фултайм хардкорная разработка в двух областях, рисование, графика, музыка, админство. И ни одного глюка.
На машинах с windows тоже ни одного.
И на машинах с linux ни одного.
А таких людей, у которых pdf и креши я тоже знаю. Они бесполезны. Странно, что они каким-то образом печатать умеют.
Копай в то, как ты видишь то, что тебе возвращается 0. Может неправильно лог прописал.
>фултайм хардкорная разработка в двух областях, рисование, графика, музыка, админств
Читать как 2 лабы уровня lab04.cpp, фотошоп чтобы кружок нарисовать, фрутилупс дальше туториалов 1 урока не осиливший и настройки утки
Вот именно так читать не надо. Это прочтение максимально далеко от истины.
Но если тебе так хочется - можешь читать. Суть все равно та же - даже на lab04.cpp у нормальных людей ничего не глючит. А у ненормальных постоянно какие-то pdf отваливаются.
но у тебя так и есть, мамкин недофрилансер
Какой ты умный) Прям и жнец, и певец и дуде игрец.
Профи широкого профиля просто. В ебальник бы сунуть за базар твой гнилой, ибо пиздишь о том, чего не знаешь.
При работе с asset'ами тоже кстати проблемы бывают, аж до вылета. Знаешь, что это такое, дизайнер, админ, худождник?
>даже на lab04.cpp у нормальных людей ничего не глючит.
>даже на lab04.cpp
Ебааааный дебил. Так на то она и лаба, что на ней ничего сложного не делается, отсюда и глюков быть не должно. Что у тебя с логикой, даун?
Может он имел в виду, что в лабе будет много ошибок, утечек памяти и прочего, но и они не смогут повалить X-code?
Может, но Xcode валится на каких-то легких и рутинных вещах и не при утечках. Так что скорее всего у него с логикой все-таки проблемы.
>Аноны, подскажите нормальные виде/текстовые уроки программирования в xcode.
Шапчку читай, слепой еблан, даже не пытался, лишь бы говна понаписать.
Ты злой :(
ебаный кретин блядь открой любую книгу по разработке на ios хоть из шапки и сиди тыкай кнопки по шагам
Где поехавшие, мудак не может открыть и загуглить книжки.
В ОП ПОСТЕ ПЕРВОЙ ЖЕ СТРОЧКОЙ список книг, как этот муда к впрограммирование собрался?
Где найти заказчиков / вкатиться в студию джуниором? Или пилить пет-проект и попытаться продать?
Заказчиков не искал, так что расскажу про поиск работы.
Да тупо на моем круге искал подходящую вакансию и писал, что вот я такой-то, не хотите ли меня?
И взяли, после тестового задания.
А насколько ты хорош, чтобы работать джуниором? Джуниоры разные. Что ты умеешь?
Так не сиди в конфах /зк/ лол.
Вот тут норм разрабы, контрибьютят в Swift даже:
http://cocoadevelopers.club/
>каким образом их столько много в такой достаточно сложной и ресурсной сфере
Если речь идёт про ios, то ты не прав. Мало ios разработчиков, во всяком случае в РФ и Европе.
Насчет макак - хз. А хорошего иос разработчика найти почти нереально. Их мало и они все заняты.
Макаки они что пилят? Всякое дно типа доставки пиццы и игрушки на кокосах. Этого может и навалом. А людей, который тебе под иос сделают яндекс.карты или портанут под иос FL - катастрофично мало.
>А хорошего иос разработчика найти почти нереально.
А вот итт они и собрались все.
>>705793
>Всякое дно типа доставки пиццы и игрушки на кокосах.
Это дно как раз больше всего и востребовано. Причём, это дно всё равно сложнее пхп дна.
Кстати, и правда, откуда у макак столько ресурсов даже для пиления доставки пиццы и игрушек на кокосах?
Раз нехватка, то почему всего 2 вакансии на всю Москву для джунов
Так там еще хуже, удвою его, мне каежтся все такие вакансии чисто через сарафанное радио
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'unable to dequeue a cell with identifier MealTableViewCell - must register a nib or a class for the identifier or connect a prototype cell in a storyboard'
Дошло до полного пиздеца - этот контроллер сделал один в один по гайду для ФудТрекера - то же самое, хотя сделанный с нуля или скачанный с эппла проект работает.
В инете кроме очевидных советы типа шаманства в духе "удали идентификатор, переведи курсор, введи его заново".
Подскажите, пожалуйтста,
Пример из фудтрекера.
Ошибка в этом месте:
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
// Table view cells are reused and should be dequeued using a cell identifier.
let cellIdentifier = "MealTableViewCell"
let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath: indexPath) as! MealTableViewCell
// Fetches the appropriate meal for the data source layout.
let meal = meals[indexPath.row]
cell.nameLabel.text = meal.name
cell.photoImageView.image = meal.photo
cell.ratingControl.rating = meal.rating
return cell
}
Eсли изменить tableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath: indexPath) на tableView.dequeueReusableCellWithIdentifier(cellIdentifier) или добавить костыль в viewDidLoad в виде tableView.registerClass(MealTableViewCell.self, forCellReuseIdentifier: "MealTableViewCell"), ошибка пропадает, но появляется другая:
fatal error: unexpectedly found nil while unwrapping an Optional value
т.к. cell обращается в nil
Пример из фудтрекера.
Ошибка в этом месте:
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
// Table view cells are reused and should be dequeued using a cell identifier.
let cellIdentifier = "MealTableViewCell"
let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath: indexPath) as! MealTableViewCell
// Fetches the appropriate meal for the data source layout.
let meal = meals[indexPath.row]
cell.nameLabel.text = meal.name
cell.photoImageView.image = meal.photo
cell.ratingControl.rating = meal.rating
return cell
}
Eсли изменить tableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath: indexPath) на tableView.dequeueReusableCellWithIdentifier(cellIdentifier) или добавить костыль в viewDidLoad в виде tableView.registerClass(MealTableViewCell.self, forCellReuseIdentifier: "MealTableViewCell"), ошибка пропадает, но появляется другая:
fatal error: unexpectedly found nil while unwrapping an Optional value
т.к. cell обращается в nil
> MealTableViewCell
Тебе наверное нужен nib с MealTableViewCell и не забыть там в свойствах указать что это именно MealTableViewCell а не UITableViewCell (если у тебя отдельный класс под ячейку) и в любом случае там же чуть ниже указать нужный reuse identifier (который совпадает с именем класса - MealTableViewCell).
Им блять сразу и все подовай, а потом сениоров дергают по всякой хуйне не читая документалку...
У меня всё ок. Наверное потому что я не конкурирую с индусами, у них рейт в несколько раз меньше и нанимают их совсем другие заказчики.
>>706910
Джуны нигде не нужны. Всё что выше джуна - нехватка.
Алсо искать IT-работу через сайты работ это top kek.
>Алсо искать IT-работу через сайты работ это top kek.
А как/где искать? Я вот, например, нашел в своем тугом на иос вакансии городе контору вообще случайно. Искал опять же на сайте работ но там были предложения по веб хуите и прочему, кликнул по одной компании и перешел на их сайт и там у них увидел, что им иос еще надо но на сайте работ инфы нету вообще про это.
Где искать то? Ты же понимаешь, что шнырь позиционирующий на должность джуна не имеет выбора и работает там, где предлагают, и терпит выебоны с начальства и переработки. У него еще нихуя нету и он хуй с горы, ему не из чего выбирать. Ясен хуй, что если ты мид+ то можно на забугорных местах с поиском подсуитится но вот в данном конкретном случае ищут на джуна и ты отвечаешь
>top kek
Так где искать? Линкедин?
На телефоне постоянно приходят обновления микро-версий у некоторых приложений, но все они по 100+мб, т.е. целиком приложение. Это лень горе-програмистов или нет возможности никак обновлять лишь маленький кусок?
А в плеймаркете разве не так? Это сговор основных поставщиков контента с провайдерами интернета чтобы повысить трафик.
Откуда я знаю, как там в плеймаркете.
>сговор основных поставщиков контента с провайдерами интернета что
Ага, когда больше 100Мб по сотовому интернету не скачать, а дома всё равно безлимит.
А ты ежедневно планируешь выкатывать апдейты из замены двух строк?
Тогда хинт тебе: накопи апдейтов в течении недельки и выкати как охуительный апгрейд.
Ну а если все же планируешь апдейтить ежедневно, то тебя или заблочат в магазине или твое приложение удалят пользователи, ибо их заебет это.
Что за ерунда? Апдейтить ты можешь хоть ежедневно, всё равно ревью (если не экспедитед) занимает 10-15 дней.
1) Как можно переключаться между ВьюКонтрллерами без привязывания Сегуе вручную на сториборде? Или хотя бы как создавать Сегуе программно?
Потребность вызвана тем, что в приложение многие клиент-серверные операции требуют авторизации, которая в случае неудачи должна выкидывать на экран логина.
2) Как сделать так, чтобы текст в таблице не вылезал за пределы экрана, а переносился на другую строку?
Да не собираюсь я ежедневно ничего выкатывать, я ни одного приложения ещё никуда не выпустил, лол. Просто я не понимаю, почему мне каждую неделю нужно качать несколько стомегабайтных "апдейтов", когда нового кода там, наверное, почти нихуя.
Ну и всё же главный вопрос-то — возможно ли обновление лишь части приложения? Или максимум можно не заставлять заново качать все ресурсы (вроде бд в словаре, всяких картиночек и т.д.)?
Конференции, митапы, онлайн-коммьюнити, фрилансерские сайты наконец.
HR'ные дыры не нужны. Джуну стоит сделать домашний проект и он уже будет в разы привлекательней.
На стеке забанили? http://stackoverflow.com/questions/9674685/creating-a-segue-programmatically
Ты можешь пушить часть изменений со своего сервера, никто тебе не мешает, если этот функционал не противоречит требованиям безопасности. Алсо, никаких проблем в том, чтобы сделать апдейт в 100 мб раз в пару недель нет. Это нормальная "расплата" за то, чтобы какой-нибудь мудак не залил свой вирусняк в телефоны.
Нету же, как и второго моего вопроса.
>Это нормальная "расплата" за то, чтобы какой-нибудь мудак не залил свой вирусняк в телефоны.
То есть? Что ему мешает это сделать при большом апдейте?
Не можешь, эппл запрещает загружать код со сторонних источников. Если получится протащить через проверку, то все равно в любой момент смогут зарезать приложение.
>То есть? Что ему мешает это сделать при большом апдейте?
Ты совсем ноль в иос? Мешает обязательная для всех проверка.
Нет.
Возможно ли получить из OS X приложения доступ к подключённому к айфону? Или, можно ли синхронизировать два дополняющих друг друга приложения без использования всяких айклаудов и т.д.?
Грубо говоря, хочу следующее:
1. Оба устройства подключены к одной сети.
2. Запускаю на телефоне приложение, тыкаю "sinhronizirovat", он магическим образом находит компьютер (через bonjour какой-нибудь) и пытается подключиться.
3. На компьютере висит даемон, ждущий этого подключения.
4. Тыкаю на телефоне одну из двух кнопок (компьютер -> телефон или телефон -> компьютер), и он начинает передавать данные в нужную сторону.
Такое возможно без особых костылей сделать? Вроде бы всё довольно очевидно, кроме нахождения нужного компьютера в сети. Бонжур этот же мне поможет сделать, верно?
Или, может, стоит как-то по-другому организовать? Приложение уровня слежения за расходами, исключительно для личного пользования (по крайней мере, пока).
>Такое возможно без особых костылей сделать?
Немного даже перефразирую вопрос: не является ли предложенный мною вариант сам по себе костылём? Вдруг есть какие-то уже готовые элегантные решения. В гугле забанен честно.
сделай через любой веб сервис, раньше я бы предложил парс, но ему осталось меньше года, актуальные данные можно хранить сразу в их базе, более того, по обновлению данных можно рассылать пуш нотификацию что приехали новые данные
Не хочу я никаких веб-сервисов, потому что обязательно будут проблемы либо с их, либо с моей стороны (у меня сейчас интернет говно, и лучше не предвидится в ближайшее время). Тем более в их базах там что-то хранить, ну его. У меня есть амазоновский сервер, так что если уж и надумаю через интернет делать, то со своим, и пуши оттуда же, но мне это нинужно, я и так знаю, когда новые данные приехали — когда я их туда ввёл.
Реквестирую пару идей для домашнего проекта, клон чего-нибудь? Обязательно в стор выкладывать?
> раньше я бы предложил парс, но ему осталось меньше года
Парс ушел в опенсорс и теперь его, даже с дашбоардом, можно без проблем поднять на своём сервере.
Есть смысл после 6 лет веба в ios перекатываться? Как с работой/зарплатами? Хайп еще не прошел? Какие перспективы?
у меня для тебя есть новости от торговцев iphone совместимыми продуктами, типа чипов для конекта к устройствам чере зашифрованный интерфейс. Вот, продажи их упали на 220 процентов. Выводы делай сам.
Действительно, вывод напрашивается сам: все переходят на беспроводные технологии.
Но причем тут это?
Даже если будет беспроводной доступ, ты без этого чипа не сделаешь аксессуар для айфона(пэда, пода) которое носит логотиа MFI. так на вскидку.
Так зачем, если сейчас большая часть аксессуаров работает через wi-fi.
потомучто ты не можешь слать низкоуровневые комманды на девайс без предворительной зашифровке сертификатом в чипе от эпл.
Вопрос такой, можно ли добиться схожей функциональности без лишних костылей, если н использовать аппрув и возможности программы MFi?
Ну все тогда, сливаем воду. Пошел учебник по ведру качать.
А если серьезно подойти к вопросу: осилить несколько курсов, книг, что-то из фундаментального, то есть шансы не остаться бомжем?
Тебе чел пишет, что количество контор которые хотят поучвствовать в донает Apple, для их типа лицензируемой платформы упало почти в 2.5 раза. Люди платили за воздух конкретный бабки, теперь такая штука больше не катит, эпл не генерирует деньги как раньше. Закат близок друг. Дерзай, самое время.
Дроид не дроид, Весь мобильный дроч будет там же.
Да мы вас говноедов знаем. чуть что тк сразу говна поесть, никогда не поверим в инфу которая говорит что-то о будущем.
Лол. А ты из будущего приехал что-ли, неговноед? С новым дешман SE продажи аппла только вырастут. Вырастут и продажи приложух. Мантра про то, как всё будет плохо, звучит уже последние лет 8, с того момента, как всё началось. Конкуренцию срезать нужно, но не итт, неговноед, не итт. Запомни: не итт.
Кому похуй, тот идёт нахуй. Просто запомни это, и расходимся.
>С новым дешман SE продажи аппла только вырастут.
От этого, кстати, пригорело. Все вокруг кричали, что SE никто не купит, херня, в день выхода у главного входа в эппл стор только три бомжа были, кококо. Пришёл в эппл стор на следующие выходные: "SE нет, когда будет — не знаем".
"Нет" — в смысле, закончились.
Ты уже больше 10 лет каждый год как поехавший пророчишь смерть яблокам.
Кому верить? Ебанутому анониму, возомнившему себя вангой, или очевидно самой дорогой корпорации в истории цивилизации?
Для тебя есть новость.
Ты. Лично ты. В данном случае вот конкретно ТЫ - сосешь и идешь нахуй. Бодро, без оглядки. А мы тебе в след еще опущенские прибаутки отвесим. Потому что ты и есть опущенец.
Свободное время тратят на хейт чего-то популярного. "Назло маме отморожу уши."
В общем-то всё верно, но ты ошибся аноном. Вот этот >>712009 вроде наоборот иронизирует над этим >>711967
Да никто не над кем не иронизирует.
Просто пердаки потихоньку нагреваются, глядя на последние тенденции, вот и кудахчат.
>Есть смысл после 6 лет веба в ios перекатываться?
А потом уже пошли пророчества и путаница в ссылках на посты.
Ничто не вечно, и Apple тоже. Но Apple это не таз и не корыто, которое бульк и потонуло. Это титаник, который будет тонуть 2-3 года.
В ios перекатываться смысл есть, пока тебе нужна интересная работа с максимальной оплатой. На сегодня это яблоки.
А когда оно явно начнет тонуть (как говорят местные ванги) - у тебя будет предостаточно времени, знаний и опыта, чтобы спокойно перекатиться на следующего по списку кандидата дроид
Все не так просто, мой друг.Эпл не может утонуть если мобильная движуха будет все еще активно развиваться. Если потонет эпл, то это будет значит что тебе придется перекатываться не на другую моб платформ, а вообще в другой домен.
Но Microsoft же в свое время феерично просрали платформу (будучи основным игроком какое-то время). Мобилы до сих пор живы, а микрософту места нет в этой области. Любой может ошибиться.
Ну я не припомню ниодного разработчика, кто перекатился из Windows Mobile, в IOS. Там парадигма оказалась совсем другая, и по тем меркам передовые спецы в итоге оказались обезьянами неосиляторами.
>Там парадигма оказалась совсем другая
Угу. Фотонно-квантово-глюонная.
Разница между платформами - точно такая же, как разница между любыми двумя фреймворками.
Не смог перекатиться - ну значит там разработчик, который умеет писать только по готовым сниппетам, а думать не умеет. Не в платформах тут дело, а в головах.
Если вспомнить те веремена, то во всех PocetPC и мобилах был швейцарских набор из базовых приложений, и они имели просто монополию на установку. Где все эти разрабортчики, кроме приложений от крупных контор? Ничего в IOS или Андройд по схожему функционалу и такойже популярности не попало. Резко настало время новых девелоперов, которые правильно подали схожий функционал и заняли топ 10. Так вот рассуждать о том, что перекатится легко - это пиздабольство начинаещоге кодера, если прилипнишь знатно к своей платформе, то сдохнешь вместе с ней.
>начинаещоге кодера
В данном случае перед тобой рассуждает разработчик со стажем 10+ лет под 5+ платформ (среди них натив десктоп, натив мобилы, веб). Так сложилось, что пишу сейчас под иос (бабла больше).
Перекатываться - легко.
Стабилен - рано. Учи его (пара недель, он простой), но не в продакшн. Перекат будет позже.
Если ты выбрал эту платформу по принципу где реально бабла больше, то, у меня для тебя плохая новость, ты, явно, хуево разбираешься в рынке, а значит и во всем остальном.
мм
Блядь, спасибо, твою капитанщину я и в шапке мог прочитать. По пунктам расскажи, почему swift нельзя прямо сейчас использовать в продакшене.
1C всегда сможешь на хлеб намазать. Стабильно тридцатка в регионах, там про всякие мобилы даже не слышали, так что проще сразу с голоду подохнуть.
Не удержался и протолстил.
Это не толстота. Это реально ход ваших мыслей, не это ну значит 1с. Показательно весьма.
Поддержу уебков выше, тут реально бабло высокое капает
Местами сыровато, местами тормозно, местами жырно.
Прям вот огненной причины его трогать нет; пиши, пожалуйста. Только будь готов, что в середине проекта будешь все переделывать с нуля на обж.
Хотя полно людей простенькие проекты на свифте нормально завершают.
Mission critical - obj-c, творческая свобода - пробуй свифт. Все как в шапке. Платина.
Так вот, есть приложение. нужно сделать там возможность использования без регистрации, но тогда данные просто сохраняются на телефоне, а если человек залогинится через гугл или что там, то эти данные буду хранится на сервере - допустим тот же фаербейз.
Как мне вообще всю эту цепочку осуществить, куда копать, что делать?
Данные на телефоне сохраняются в любом случае (кеширование). Делаешь сначала это. Потом разбираешся с апи фаербейза. Учишся закидывать туда рандомную хуиту, потом вытаскивать. Потом закидываешь данные с телефона и делаешь синхронизацию. При запуске приложения (или логине юзера) вытаскиваешь инфу с фаербейза и обновляешь кеш в телефоне. Когда юзер изменяет инфу - обновляешь в телефоне и в фаербейз.
не ходи туда, там долбоебы одни
работают на фрилансе на свифте, брат жив
Зависит от приложения. Если хватит функционала то лучше использовать рилм так как он проще. Кор дата сложнее, но у нее есть божественный NSFetchedResultsController.
Ну проверки и проверки, размер обновления-то тут при чём? Или ты намекаешь, что можно было бы по кусочками вирус добавляя, при этом пока целиком не соберётся, обнаружить нельзя?
Или только две разных версии делать? Как в таком случае работать с кодом, если разница там в несколько методов будет? Не копипастить же между проектами.
Размер тут не при чём, это ты зачем-то форсишь про размер. Вопрос стоит так: разрешать или вообще не разрешать. Если разрешаешь, то включаются новые риски и неважно, какого размера обновление.
Определяй, реагирует ли приложение на твою фичу, и если нет, то включай другой вариант. Если решить делать две разных версии, то используй таргеты.
>это ты зачем-то форсишь про размер
>Вопрос стоит так: разрешать или вообще не разрешать
Что я форшу? Вопрос стоял так -> >>709103
Что разрешать ты там собрался? Почему на компьютер обновления обычно маленькие и тебе не нужно весь фотошоп перекачивать, а на ios надо?
>Почему на компьютер обновления обычно маленькие и тебе не нужно весь фотошоп перекачивать
Ещё раз. На компьютер ты поставил фотошоп и разрешаешь ему делать много разного с твоей системой. С этого момента ты теряешь разумный контроль за ним. В иос миллион разрабов, и если за ними не следить, то сам представь, что будет. Поэтому условно опасные обновления проходят проверку, без докачек. Хотя по факту ты можешь настроить так, чтобы обновлять кое-что по мелочи. Вопрос, правда, в том нахуа это нужно. Вряд ли ты будешь каждый день поправлять размер ячейки.
>Хотя по факту ты можешь настроить так, чтобы обновлять кое-что по мелочи.
То есть, техническая возможность есть, но (почти) никто не пользуется, правильно я понимаю? Или это всё самодельные костыли будут?
>Поэтому условно опасные обновления проходят проверку, без докачек.
Так можно ж это, установить этот мини-апдейт, а после него проверку сделать. И на этом и порешать, безопасно оно или нет. В чём разница-то?
>Вопрос, правда, в том нахуа это нужно.
Например, чтобы можно было без проблем без вайфая обновиться, а не искать, находясь в стране третьего мира не рашка, интернет который хоть полчаса стабильно проработает, чтобы не дропнуть соединение (а докачки, походу, нет); чтобы не качать полчаса эти ёбаные 100+ мегабайт ради сомнительного нового говна, отказаться от которого нельзя, потому что при каждом запуске тебе в рожу выскакивает сообщение о новой версии.
Так он мне сбилдить не даёт ведь, ругается: "коко, вы использовали X, а ваш деплоймент таргет слишком старый" и всё. Если сделаю билд для последнего, то вангую просто креш при запуске на старой версии. Впрочем, не пробовал.
Или если через код добавить, а не сторибоард, то он и не заметит, что я этот gesturerecognizer использовал?
>техническая возможность есть
Есть, но ограниченная.
>а после него проверку сделать
Нет, потому что юзеры уже словят твоих условных вирусов и всякой непотребщины.
>Например, чтобы
Речь шла о том, что непонятно, зачем постоянно докачивать мелкие правки. Для крупных правок тебе всё равно придётся перезаливаться по полной.
>Есть, но ограниченная.
Чем?
>Нет, потому что юзеры уже словят твоих условных вирусов и всякой непотребщины.
В смысле? Просто не пускать в аппстор до проверки и всё. Ведь с большим обновлениями сейчас так и есть, или нет? Я же просто не в курсе, как там вообще это происходит и ни малейшего понятия не имею, в чём состоит эта самая "проверка" (сорцов же у них нет), потому и спрашиваю.
>что непонятно, зачем постоянно докачивать мелкие правки.
А какие ещё правки можно вносить каждые две недели с охуительными пометками "General Improvements" или вообще копипаста "Every update includes improvements for speed and reliability", как у фейсбука в каждом обновлении.
Наверное просто исторически так сложилось. В первые телефоны приложения заливались полностью (когда появилась такая возможность), возможностью патчить их не озаботились, так как возможно посчитали лишним - приложения то маленькие были. С того времени так и тянется, так как никому не выгодно что-то менять. Забавно сложилось на андроиде - разного рода патчеры там есть, но они только для вырезания всякой хуйни (типа рекламы). Обновления приложений ввиде патчей никто не выпускает, насколько мне известно.
> Обновления приложений ввиде патчей никто не выпускает
А нахуй это нужно, если благодаря java мои приложения весят в районе 3MB.
Для игр с их гигабайтами текстур в GooglePlay отдельный механизм есть.
т.е. пишу дату в рилм, затем отсылаю данные на фаербейз, если юзер зашел с нового девайся, то проверяю пустая ли база или нет или как-то так и тяну данные в рилм?
Типа того. Сохраняй время обновления инфы и при синхронизации затирай более старую. Там нужно продумать разные ситуации, типа того что юзер потерял связь, обновил инфу в телефоне, при востановлении связи нужно обновить в фаербейз (наверное) а не наоборот.
Блядь, как все сложно звучитю
Ты походу вообще не понимаешь, о чём речь. Перечитай то, что тебе сверху написали, и сопоставь свои вопросы.
>Чем?
Требованиями Эпла, чем.
>Просто не пускать в аппстор до проверки и всё.
О чём ты вообще? Вот тебя и не пускают в аппстор до проверки, поэтому тебе надо выкатывать обновления через аппстор. БИНГО! Ты уж определись.
>каждые две недели с охуительными пометками "General Improvements"
Никто не заставляет тебя выкатывать апдейт каждые две недели. Равно как и обновлять свой фейсбук. Равно как и считать фейсбук за правильную модель обновлений.
>понятия не имею, в чём состоит эта самая "проверка" (сорцов же у них нет)
Ну блять! Как ты думаешь, наверное они заранее озаботились тем, что всё видеть и без твоих сорцов, прикинь?
>Ты уж определись.
В смысле определись? Ты говорил, что частичные обновления какие-то там вирусы могут принести, а так проверка есть. Но какая разница, проверять целиком заново собранное приложение или просто пропатченное, включая процесс патчинга, если надо? Не давать пользователям обновление или патч до проверки. В чём такая большая разница-то с точки зрения "безопасности"?
>Требованиями Эпла, чем.
Э-э, вопрос был "в чём проявляются ограничения".
>Никто не заставляет тебя выкатывать апдейт каждые две недели.
Так я и не собираюсь, блин. У меня униные от того факта, что куча приложений так делают, вот и хочу узнать, так сложилось, как писал >>713606, или действительно есть острая необходиостс делать именно так, я тогда заткнусь и уйду. Про "можешь не обновлять" уже писал. Да и не в этом состоял смысл того предложения, а в том, что по большей части все эти апдейты, вероятно, и есть "мелкие правки". Разве что они по всему приложению раскиданы могут быть.
>>714293
Спасибо, а то я не догадался, что у них есть возможность делать необходимые проверки. Я имел в виду, что детали никакие не знаю, и может и правда есть какие-то возможности по одному символу кода незаметно добавлять в каждом обновлении, а потом хуяк-хуяк и eval().
>>714311
Если UILabel, то там атрибут lineBreakMode есть, а так через attributedText можно.
>Но какая разница, проверять целиком заново собранное приложение или просто пропатченное
Разница есть - это два разных процесса, которые требуют дополнительные ресурсы. Одно дело - ты запускашь условно (хотя так и есть наверянка) готовые скрипты, которые тебе говорят "да/нет", ну может ещё "подозрительно", и тогда ты, как низкоуровневый проверяющий персонал, связываешься с супервайзерами. Здесь всё унифицировано. И другое дело, когда под каждый патч ты делал бы свои скрипты - ты подумай над всеми этими миллионами приложений, и ответ просто нет.
>в чём проявляются ограничения
Причин много - https://developer.apple.com/app-store/review/rejections/, использование private API в том числе. Из списка причин ты можешь увидеть, что проблема не только в вирусах, но также в том, что Апл хочет поддерживать определённый уровень качества в магазине.
>вот и хочу узнать
Теперь узнал?
>когда под каждый патч ты делал бы свои скрипты
Ну я как бы сравнивал способы:
1. Есть, формально, целиком новое приложение -> запускают скрипты.
2. Есть старое приложение, на которое ставится патч, получая то же приложение, что и в первом способе -> запускают скрипты. Тут, вероятно, да, добавляется слой скриптов для проверки того, куда патчер лезет в процессе, но ведь это тоже стандартное всё было бы и один раз писалось бы.
>Причин много
Только к способу обновления ведь это отношения не имеет.
>Теперь узнал?
Ну, так, примерно. "Тип работы меньше и исторически так получилось".
В общем, спасибо за ответы, можно закончить.
Чистый код Мартина
Второй курс с курсеры Build a Foundation in iOS, который называется Networking and Security in iOS Applications, вообще не пошел. Первый мне очень понравился. А этот никак не могу себя заставить пройти дальше 2-ой недели. Препод разочаровал, походу он сам не шарит в том, что говорит, очень много косяков в видео. А когда он начал в своих видосах просто раскомментировать код, я понял что надо дропать.
В очередной раз убедился, что лучше ничего Стенфордовских лекций нет. Жалко только, что новый курс для iOS 9 они выкатывать в itunes-u не собираются походу.
Нахуя вообще проходить какие-то левые курсы, когда есть охуенная официальная документация? Вот, блять, просто бери и читай. Рили, я, как перекатившийся из C++, просто охуеваю от качества и обширности офф гайдов.
Соглашусь с тобой тут. У меня тоже сложилось впечатление, что в офф. доке есть все, что нужно. Но вот поиск и навигация по доке это какой-то пиздец по-моему.
Вот есть класс huymodel - там есть проперти, в проперти загрузил и записал данные
self.pizda = данные из интернета
1)Правильно что делаю модель и маплю к ней данные?
2)Как передать эти замапенные данные куда либо в другой класс?
Создаешь протокол huymodelObserver, в нем объявляешь сообщение типа -(void)modelDidRecieveData:(huymodel*)model
В модели создаешь массив observers
Когда какому-то объекту нужно следить за моделью - указываешь что объект соотвествует протоколу huymodelObserver, добавляешь указатель на этот объект в массив (делаешь у модели методы типа attachObserver и detachObserver). Эту хуйню можно в отдельный клас вынести и наследовать от него модели.
Переопределяешь проперти pizda - после записи новых данных рассылаешь сообщения всем наблюдателям, будет что-то типа for(id<huymodelObserver> observer in self.observers) [observer modelDidRecieveData:self];
Естественно каждый наблюдатель должен реализовать метод modelDidRecieveData - где он уже обрабатывает данные от модели.
После этого для каждого объекта которому нужно следить за моделью делаешь huymodel.attachObserver(obj), и потом когда получаешь данные делаешь self.pizda = данные из интернета и все кому нужно узнают что модель изменилась и могут обработать.
Там есть все, что тебе когда-нибудь может пригодиться. Чтобы лучше по этой куче ползать рекомендую выделить день (проверено - хватает), проползти по всем разделам, посмотреть какие есть семплы, какие темы рассматриваются (референсы пока не смотреть!). Неспешно, чтобы не сдохнуть от скуки, зевоты и рутины. Останавливаться на интересном, не заморачиваться на структуре доков. Через месяц процедуру повторить. После этого в доки будешь заходить как в дом родной.
А как по другому? Все сведется к наблюдению, потому-то по смыслу это наблюдение и есть. Это кажется что сложно, если разобраться то все просто. Можно попроще через делегата сделать. В модели проперти делегат, и она просто вызывает какой-то метод делегата когда меняется. Или KVO навернуть, но так наверное даже сложнее.
>+(CTBrowser [i/])browser{
>return [[self alloc] init]
>}
>-(CTBrowser )createNewBrowser{
>CTBrowser browser = [isa browser]
>}
Direct access to Objective-C's isa is deprecated bla-bla
Пытался в интернете почитать, но так до конца и не понял, чей же класс тут isa берёт? В комментарии написано "create a new browser with window controller based on current window controller's class", но этот метод вызывается исключительно в этом же CTBrowser.m,
В интенете писали заменить obj->isa на object_getClass(obj) или [obj class]*, но что тут является obj'ектом-то?!
Короче, заменил на [[self class] browser], вроде скомпилилось и запустилось, но хрен знает, правильно ли это?
Там куча других ворнингов и какая-то рантайм ошибка с "adding unknown subview", но это вряд ли как-то может быть связано.
https://github.com/rsms/chromium-tabs/blob/master/src/Browser Window/CTBrowser.m#L28_L37
И вот тут тоже - https://github.com/rsms/chromium-tabs/blob/master/src/Browser Window/CTBrowserWindowController.m#L397
инб4: протухшее говно. Собственно, там скролла в табах и не оказалось, а мне этого в NSTabView и не хватает, поэтому всё равно использовать не буду.
А впрочем, скачал чей-то форк, по-новее, и там как раз [object_getClass(self) browser].
Что б уж не совсем зря пришёл: правильно ли я понимаю, что это сделано для наследования (т.е. создавался правильный класс без необходимости оверрайдить этот метод)?
Да там почти тоже. Создаешь протокол huymodelObserver, в нем объявляешь сообщение типа -(void)modelDidRecieveData:(huymodel*)model. Вообще протокол не обязателен, он для статического контроля и чтобы автодополнение работало, лучше всегда с протоколом делать.
В модели создаешь проперти delegate, тип проперти делаешь id<huymodelObserver> - это значит любой класс который соответсвует протоколу huymodelObserver. И дальше в модели каждый раз когда что-то изменяешь делаешь [self.delegate modelDidRecieveData:self]; - лучше перегрузить соотвествующие проперти (pizda), чтобы когда ты изменяешь проперти сразу и сообщение делегату отсылалось.
А тот объект что должен сообщения получать назначаешь делегатом, что-то типа model.delegate = self. Ну и реализуешь в нем метод modelDidRecieveData: - каждый раз когда меняется модель будет вызывать этот метод указателем на модель откуда ты сможещь вытащить данные. Метод можно поменять для удобства, например сразу присылать изменившиеся данные. Или там несколько разных сделать и т.п.
Двачую этого. Я все же придерживаюсь мнения, что этой документации не хватает четкой высокоуровневой структуры, но все же она в каком-то подобии есть. Я начал с ios technology overview - там в самом начале есть отсылки на ios app structure guide, view programming guide, view controller programming guide, events handling guide, concurrency guide + краткий обзор всех фреймверков и framework level'ов.
Это можно считать стартовой точкой.
Сам objective-c я изучал по старой эпловской доке в pdf от 2012 года. Ее в доках сейчас не найти, я в гугле нашел.
Вообще бесит, что они отказались от pdf-версий. Как по мне так удобнее.
Что именно не получается? Попробуй - replaceCharactersInRange:withString: или
- replaceOccurrencesOfString:withString:options:range:
Не получается заменить там символы.
Вот сейчас пытаюсь через insertString atIndex, получаю красную ошибку Thread 1 Signal SIGABRT. Ну, думаю не из-за этого, а из-за чего-то другого. Просто я понял частично фейл свой - без квадратных скобок это вообще не работает, запутался. Ну и сайт какой-то левый юзал, получше вот нашел https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSMutableString_Class/#//apple_ref/occ/instm/NSMutableString/replaceOccurrencesOfString:withString:options:range:
В Swift есть корутины (сопрограммы) хоть в каком-нибудь виде?
И если нет, то есть ли планы на них в след. версиях?
Swift знаю поверхностно, но нигде не встречал упоминания о использование.
Вот хотя бы поддержка async/await была бы очень полезна.
Можно проектом самый простой пример и который на практике используется для передачи, я б посидел исходник поковырял б
Какую показывать рекламу чтобы епте срубить больше бабок. Интересует, как примерно подсчитать профит в день с 1к пользоветелей посмотревших 1 раз видос с рекламой/баннер с рекламой.
Нашел такой калькулятор.
http://ryanmorel.com/mobile-advertising-calculator/
можно ли ему верить? Алсо чему будет равен средний еСРМ и как его рассчитывают?
Приложение типа "игра для даунов". Бесплатное. В среднем пользоветель склоняется к просмотру ~5 видео реклам за сутки и постоянно на экране крутится баннер. Возможно для такой системы посчитать профит в единицу времени на 1000 пользователей, если положить что пользоветль сидит в день по 2-5-10 минут?
Опять же, тот калькулятор что я привел выше вообще близок к реальности?
Всё, разобрался.
У меня там динамический массив был, я его переобъявлял и думал, что ничего не работает.
меня лид недавно выебал, говорит нахуй ты там переменную в одном месте обьявил, она ж всей программе видна будет
Ну а что делать, если моим функциям надо одновременно работать с одним массивом данных?
P.S. Где ты работаешь? Я тоже хочу там работать.
>переменную в одном месте обьявил
>она ж всей программе видна будет
и что это за место такое?
Подумал , что хуйня. Ну по сути так и есть , но мне тестовое выписали. Оно не то чтобы сложное - недотетрис (буквально причем - т.е просто анимация падающих фигурок), но я не знаю с какой стороны подойти - coregraphic, всякие кокоа или еще что-то. Подскажите путь наименьшего сопротивления. Просто я с виртуальной машины буду хуярить - а там обычный хеллеворлд тупит на икскоде, не то что сложное приложение.
В общем ткните пальцем , очень прошу
Наименьшее сопротивление - CAShapeLayer и UIBezierPath
Чуть сложнее - CoreGraphics и SpriteKit.
CAShapeLayer и CoreGraphics - одинаково медленные (но для примитивов подойдут)
SpriteKit - быстрый, но с ним я не работал.
.
Я в последнее время для быстрой отрисовки чего-либо, использую данную либу: https://github.com/memononen/nanovg
Она довольно легко прикручивается к GLKit'у и позволяет рисовать в 60fps всё что хочешь.
Если её прикрутишь - все вообще охуеют как ты можешь. Но хз, нужно ли оно в контекте тестового задания
.
Для начала напиши движок своего тетриса с расчётом фигур их положения и перемещения на экране, потом запили модуль рендерера и говори ему что рисовать. Таким образом ты сможешь разнести логику и графику в разные модули и легко, в случае чего, поменять метод отрисовки.
Опять же, если конторка пилит всякие социальные игры - то тут лучше cocos2dx брать и не ебаться
Берешь любой гейм двиг и пилишь.
Если требуют нативными вьюхами / слоями - шли их нахуй. Серьезно, они наглухо поехали. Нет на планете такой задачи, которая оправдает такое собеседование, Пусть они хоть кварки препарируют, все равно дно. Выдай говно - назови фамилии.
>Экстерн конст, не? И заголовок прописывать
так его потом импортировать везде надо, чтобы отовсюду видеть
>Нет на планете такой задачи, которая оправдает такое собеседование
Вообще-то есть. Далеко не все игровые движки ложатся на UIKit гладко. Большинство представляет из себя полноэкранный рендерер, с полностью своей логикой интерфейса, взаимодействий и всего-всего. А иногда тебе надо отрисовать какую-то анимированную сложную хуйню внутри uiview и не ебать мозг.
гайз, это я.
спрайткитом делаю.
относительно просто - ну т.е по-крайней мере представляю примерно что делать.
но я не соображу за координатную сетку на IOS.
Поясните пожалуйста, что за фигня с ней?
те кто понял о чем я
>>718351
Да нормальная координатная сетка - сверху слева начинается, как и везде.
Может тебя смущает соотношение пиксель-поинт, которое зависит от разрешения матрицы аппарата?
Как правильно организовать ремасштабирование элементов при увеличении/уменьшении окна? Особенно, если этих элементов много, и они ещё и высоту свою выставляют в зависимости от количества текста и имеющейся ширины (как посты на двоще, в общем). К тому же, вся эта хрень является documentView в NSScrollView.
Пока что сделал так:
1. вью, который documentView, получает эвент viewDidEndLiveResize, где он получает новую ширина как self.superview.bounds.size.width
2. Первому сабвью передаётся эта новая ширина и отправная точка по оси y, они там сами заново считают высоту textContainer'а для помещения всего текста. Они изменяют свой фрейм в соответствии с новой шириной и высотой, и возвращают свою высоту.
3. Собственно, получив высоту в пункте 2, отправная точка по оси y изменяется. Пункт 2 повторяется со следующим сабвью, пока все не кончатся.
4. этот documentView изменяет свой фрейм (высоту) на то значение, какой получилась нижняя координата последнего имеющегося сабвью, чтобы скролл верным был.
Но чую я, что хуету какую-то наговнокодил, должна же быть какая-то галочка "сделать хорошо". Или нет?
И второй вопрос по NSTextView. Как его правильно ресайзись на новую ширину, оставив минимальную необходимую высоту? Приходится так:
1. Меняем у фрейма ширину Ну, то есть, создаём новый фрейм, в котором только ширина отличается, ведь он read-only
2. Получаем размер textContainer'а
3. Меняем у фрейма высоту.
Вот эта вот часть с двумя сменами фрейма меня настораживает.
>>718367
Есть такая байда как :
CGRectMake(0, 0, 50, 50)];
и
position = CGPointMake(100, 200);
в первом 0,0 - указываются как координаты.
во втором - позиция.
Вот не пойму в чем разница, и как это работает.
В первом случае ты создаёшь прямоугольник (RectMake), во втором - точку (PointMake).
Прямоугольнику ты задаёшь верхнюю левую координату, с точкой то же самое.
Т.е. CGRectMake(0, 0, 50, 50)]; - прямоугольник, расположенный в нулях.
CGPointMake(0, 0) - такая же точка, в нулях.
организуй всё списком - тэйблвью или коллекцией c лайаутом, а потом по systemLayoutFittingSize вычисляй. Как это обычно на ios делается
Тейблювью не катит, потому что элементы могут быть разной высоты. Коллекция же, по сути, то же самое, не?
Пытался сейчас с constraint'ами но хрень какая-то получается: либо ругается на наличие двух конфликтующих (Autoresizing и та, что я добавил, чтобы был на каком расстоянии от вышестоящего). Если убрать авторесайзинг - вообще не рисует.
Всякие intrinsicContentSize и fittingSize (systemLayout... только в UIView есть, т.е. айос) по нулям постоянно.
>Как это обычно на ios делается
Так мне не на айос же.
>Тейблювью не катит, потому что элементы могут быть разной высоты.
Так бля, вычисляй высоту динамически. Кэшируй если надо.
>Пытался сейчас с constraint'ами но хрень какая-то получается:
Ну блять, готовь констрейнты аккуратно, понимая что ты делаешь и ругаться не будет.
Или по-твоему автолайаут делали идиоты и он не нужен? 99% интерфейсов на macOs/ios сейчас это автолайаут или производные от него (вычисления systemLayoutFittingSize, и натягивание получившегося размера на фрейм нужной вьюхи)
в общем угораздило напроситься на собеседование junior ios, u know. Подумал , что хуйня. Ну по сути так и есть , но мне тестовое выписали. Оно не то чтобы сложное - недотетрис (буквально причем - т.е просто анимация падающих фигурок),.
Не знал с какой стороны подойти.
Посоветовали SpriteKit. В принципе направление действия понял : вот сейчас думаю, как запилить, чтобы динамически
создавались геометрические примитивы рандомные.
Вообще-то мы рассчитывали на то, что ты сам напишешь тетрис. Может объяснишься?
>как запилить, чтобы динамически
>создавались геометрические примитивы рандомные.
Блядь, рандом массив пилишь с объектами и все
просто надо было вслух проговорить.
Не понятно же нихуя для мимохуя. Вот выполняешь какие-то штуки безсчетно а что делаешь не понимаешь. Плюс так с наскока читать ты с вероятность 99% перегрузишь свой и так тугой мозг не нужной хуетой(но ты то не будешь знать, что она не нужна, что тебе ее делать дадут только через года 2)
>>718499
плюс на новом языке сходу писать сложно. хоть это
и онли май проблем.
такая хуйня :
Знаю, что с методами и объектами на обжектив си, работают не так как в с++,. туплю короче.
Хочу блок кода, который делает кубик, превртить в функцию\метод или еще что, чтобы либо в него передавать параметры, либо тупо конструктор для этой хуйни запилить.
но эта фигня с методами мозг выносит.
гайз, подсобите плз.
:
- (SKShapeNode ) Blochim:(int, int )
{
SKShapeNode temp= [SKShapeNode shapeNodeWithRect:CGRectMake(-30/2, -30/2, 30, 30)];
temp.position = CGPointMake(190, 320);
temp.strokeColor = [SKColor redColor];
temp.fillColor = [SKColor yellowColor];
temp.name = @"Quad1";
temp.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:temp.frame.size];
temp.physicsBody.friction = 1;
}
Короче, сделал чуть по колхозному, в моем понимании :
SKShapeNode arrayfig[100];
for (int i =0; i<5 ; i++)
{
arrayfig=[SKShapeNode shapeNodeWithRect:CGRectMake(-30/2, -30/2, 30, 30)];
arrayfig.position = CGPointMake(200i, 30+i*100);
arrayfig.strokeColor = [SKColor blackColor];
arrayfig.fillColor = [SKColor redColor];
arrayfig.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:arrayfig.frame.size];
arrayfig.physicsBody.friction = 1;
[self addChild:arrayfig];
}
но работает как мне нужно.
гайз, вопрос все - равно. это сильно говнокод?
хочу по красоте сделать все-таки.
недоконструктор запилить, вся хуйня.
Короче, сделал чуть по колхозному, в моем понимании :
SKShapeNode arrayfig[100];
for (int i =0; i<5 ; i++)
{
arrayfig=[SKShapeNode shapeNodeWithRect:CGRectMake(-30/2, -30/2, 30, 30)];
arrayfig.position = CGPointMake(200i, 30+i*100);
arrayfig.strokeColor = [SKColor blackColor];
arrayfig.fillColor = [SKColor redColor];
arrayfig.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:arrayfig.frame.size];
arrayfig.physicsBody.friction = 1;
[self addChild:arrayfig];
}
но работает как мне нужно.
гайз, вопрос все - равно. это сильно говнокод?
хочу по красоте сделать все-таки.
недоконструктор запилить, вся хуйня.
это ж просто остановит работу потока.
Тогда может быть
мне в цикле просто проверять - упал ли блок или нет
>
решил забить на задержку.
подумал, что лучше будет спускать
следующий блок, когда предыдущий уже
упал и лежит
*и будет лежать, пока чейни рядом.
как думаете, на координаты ориентироваться?
или у объекта должно быть свойство - on_the_flow?
Нашел у объекта свойство - типа тру если он в покое.
замутил проверку, но хз.
Второй раз идти не хочет
do
{
arrayfig=[SKShapeNode shapeNodeWithRect:CGRectMake(-90/2, -90/2, 60, 60)];
arrayfig.position=CGPointMake(500, 800);
arrayfig.strokeColor = [ SKColor whiteColor];
arrayfig.fillColor = [SKColor blackColor];
arrayfig.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:arrayfig.frame.size];
arrayfig.physicsBody.friction = 1;
[self addChild:arrayfig];
++i;
} while (i<10 && arrayfig.physicsBody.resting == TRUE);
а зачем собственно? Даже сейчас OpenGLES 3 толком не утилизируется.
может тебе пора уже немного почитать про программирование под ios в целом?
Ты будешь крайне хуёвым работником, если будешь действовать только методом тыка, не обладая хоть какими-то фундаментальными знаниями языка и платформы.
блок захватывает видимый скоуп в виде поинтеров и может только обращаться к переменным, не переназначая их. Если необходимо изнутри блока изменить какую-то внешнюю переменную - необходим модификатор __block
так то ты прав)
и я бы так и сделал если бы специально целился
на иос.
но эта хуйня буквально случайно на голову свалилась.
если не прокатит - ладно, но если получится ничего плохого не вижу.
по поводу вопроса :
я пробую без таймера сделать.
Ориентируясь на коллизии в объекте.
придется искать способ добавлять задержку временную
в цикл
Тут уже хуй поймешь кого обвинять, ведь я-то честно прочитал доку до этого! А в ней нихуя не говорилось об этом. Только в ссаном примере создания окна для внешнего экрана можно увидеть, что оказывается, блядь, нужно менять hidden на YES. Ну ебана.
Гайз, поднимаю вопрос снова.
Подскажите плз.
Что делть с этим дерьмом?
Я тут прошелся по всяким форумам и прочему..
Мне надо вынести SKShapeNode - в отдельный поток?
http://sysdev.me/rabotaem-s-taymerami/
процитирую :
парни, не пойму как это работает - поясните, плз.
NSTimer timer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(timerFireMethod:) userInfo:nil repeats:YES];
NSRunLoop loop = [NSRunLoop currentRunLoop];
[loop addTimer:timer forMode:NSDefaultRunLoopMode];
time_t startTime, endTime;time( &startTime );
while (count <= 10 ) [loop runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:1]];
time( &endTime );
printf( "Time:t%dnCount:t%dn", (int)(endTime - startTime), count );
парни, короче чуток разобрался
вот говнокод :
static SKShapeNode* arrayfig[100];
static int i=0;
{
....
[NSTimer scheduledTimerWithTimeInterval:3.0 target:self selector:@selector(testtimer) userInfo:nil repeats:YES];
}
-(void)testtimer
{
//for (int i=0; i<10; i++) {
arrayfig=[SKShapeNode shapeNodeWithRect:CGRectMake(-90/2, -90/2, 100, 80)];
arrayfig.position=CGPointMake(500, 700);
arrayfig.strokeColor = [ SKColor whiteColor];
arrayfig.fillColor = [SKColor blackColor];
arrayfig.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:arrayfig.frame.size];
arrayfig.physicsBody.friction = 1;
[self addChild:arrayfig];
}
///
Знаю, что СТАТИК использовать - не есть хорошо, но пока не соображу как пихнуть туда NSArray.
И еще нужно стоп воткнуть какой нибуь, чтобы приложение не работало бесконечно.
парни, короче чуток разобрался
вот говнокод :
static SKShapeNode* arrayfig[100];
static int i=0;
{
....
[NSTimer scheduledTimerWithTimeInterval:3.0 target:self selector:@selector(testtimer) userInfo:nil repeats:YES];
}
-(void)testtimer
{
//for (int i=0; i<10; i++) {
arrayfig=[SKShapeNode shapeNodeWithRect:CGRectMake(-90/2, -90/2, 100, 80)];
arrayfig.position=CGPointMake(500, 700);
arrayfig.strokeColor = [ SKColor whiteColor];
arrayfig.fillColor = [SKColor blackColor];
arrayfig.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:arrayfig.frame.size];
arrayfig.physicsBody.friction = 1;
[self addChild:arrayfig];
}
///
Знаю, что СТАТИК использовать - не есть хорошо, но пока не соображу как пихнуть туда NSArray.
И еще нужно стоп воткнуть какой нибуь, чтобы приложение не работало бесконечно.
и подскажите один момент важный.
я убрал счетчик.
arrayfig больше не массив.
теперь в voidtester каждый раз снова создается объект и как бэ там и остается -
как этот механизм работает, господа?
Вот сделал я два лейбла, оба editable, layout стоит wraps. Указал обоим constraint'ы до верхнего элемета (супервью и первого лейбла, соответственно), отступы слева и справа, а также ширину. На end editing экшн повесил метод, вызывающий [label sizeToFit]. Он берёт и увеличивает их ширину... Разве не должен был перенести на вторую строку и сдвинуть нижний лейбл? Нет же констрейнта высоты, нижний лейбл по вертикали ограничен только в верхней части, а вот ширину я у них как раз ограничил.
Изменение размера через setFrameSize тоже ничего не даёт - размер изменяется и всё, никто никуда не двигается.
Мне нужно сделать так, чтобы я изменил (в коде, динамически) размер одного элемета, и все остальные, ссылающиеся на него, автоматически и магически подвинулись согласно указанным констрейнтам. Autolayout вообще это позволяет или мне проще вручную делать?
Только вопрос чуть конкретнее теперь :
есть сцена - sprite kit - .
я роняю в сцене фигуру.
пытаюсь как то мониторить процесс падения по координатам или по свойствам, но походу как то иначе работает...
поделитесь мыслями на этот счет, даже вне контекста с SPRITE KIT
>фикс : пытаюсь как то мониторить процесс падения по координатам или по свойствам, но походу механизм как то иначе работает...
up
Ты же не думаешь, что:
а) за тебя будут придумывать архитектуру
б) кто-то много понял из той сумбурной ахинеи, которую ты напостил?
что такое лоадер?
Возможно загрузка твоих записей из облака.
В общем буду использовать plist лучше.
Потому что знают только сисярп и/или хотят наклепать хренотенек сразу на все 3 платформы.
Не то чтобы у меня от этого кровь, но если много наберется будет резать глаза. Подскажите, а то гугл чет молчит.
P.s юзаю vmvare, за мак плохо знаю.
Прямо как на телефоне возьми и удали.
https://2ch.hk/pr/res/722377.html (М)
https://2ch.hk/pr/res/722377.html (М)
https://2ch.hk/pr/res/722377.html (М)
https://2ch.hk/pr/res/722377.html (М)
https://2ch.hk/pr/res/722377.html (М)
https://2ch.hk/pr/res/722377.html (М)
https://2ch.hk/pr/res/722377.html (М)
https://2ch.hk/pr/res/722377.html (М)
https://2ch.hk/pr/res/722377.html (М)
https://2ch.hk/pr/res/722377.html (М)
https://2ch.hk/pr/res/722377.html (М)
Ананы, а сколько стоит размещение приложения в App Store? Чет не найду нихуя.
Это копия, сохраненная 10 мая 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.