Comments 22
> Соответственно, преобразование float в строку работало на одних устройствах и крашилось на других.
Сколько раз уже вспотыкался об эти грабли, так что на автомате tryparse :)
Сколько раз уже вспотыкался об эти грабли, так что на автомате tryparse :)
+3
InvariantCulture msdn.microsoft.com/en-us/library/bh4863by?
float f = float.Parse(s, CultureInfo.InvariantCulture);
+1
именно. вариант с tryparse не даст краша, но и результата не даст в половине случаев.
а чтобы наверняка, лучше так:
а чтобы наверняка, лучше так:
float f = float.Parse(s.Replace(",","."), CultureInfo.InvariantCulture);
+1
Речь о MonoTouch, как минимум.
Вон, kekekeks собирал Mono под Maemo и напоролся:
http://mono.1490590.n4.nabble.com/Problems-with-InvariantCulture-on-Maemo-td3439657.html
![image](https://habrastorage.org/r/w1560/getpro/habr/comment_images/b04/e27/3aa/b04e273aa66594022992a32b6118280d.png)
Лучше сделаю двойной tryparse.
Вон, kekekeks собирал Mono под Maemo и напоролся:
http://mono.1490590.n4.nabble.com/Problems-with-InvariantCulture-on-Maemo-td3439657.html
![image](https://habrastorage.org/getpro/habr/comment_images/b04/e27/3aa/b04e273aa66594022992a32b6118280d.png)
Лучше сделаю двойной tryparse.
+1
UFO just landed and posted this here
Это не дико, это особенность. Вполне разумно, что при парсинге из строки учитываются культурные особенности, что в .Net, что в ObjC это происходит. Причём по умолчанию берётся текущая локаль системы, вот это как раз надо знать и понимать. Из-за этого незнания и случилась ошибка. При разборе пользовательского ввода, это логично (например разделитель на цифровой клавиатуре тоже зависит от локали) для парсинга данных из сети стоит точно указывать локаль. (натыкался на то, что популярный код, который строит маршруты на карте парсит данные с текущей локалью, на европейских телефонах все было нормально, на телефоне с российской локалью возникали проблемы.) Тоже самое происходит с датами.
Вывод: не стоит забывать в каком интернациональном мире мы живём.
Вывод: не стоит забывать в каком интернациональном мире мы живём.
+2
Читать о таких велосипедах — всегда удовольствие :) — делать что-то по готовому во всех отношениях примеру — тоже удовольствие. Никаких тебе изменяющихся ТЗ, правок в GUI, и прочих затягивающих срок разработки вещей.
+4
Паука и сапера старых еще портируйте и совсем круто будет, тем более что для паука уже много есть в солитере.
0
И скиньте пожалуйста ссылку в ЛС. А еще лучше поставьте в сообщение. Интернет состоит из ссылок, желание некоторых админов бороться со спамом в последние годы начало походить на маразм, когда авторы БОЯТСЯ ставить ссылки в собственных текстах. С этим надо бороться.
+2
Ссылки:
iTunes Store: itunes.apple.com/ru/app/id529584384
iTunes Store (HD): itunes.apple.com/ru/app/id529586974 (осторожно, платная! пишите в ЛС, дам промо-код)
Google Play: play.google.com/store/apps/details?id=net.runserver.solitaire
IPA файл (HD): 4pda.ru/forum/dl/post/1858577/Solitaire_0.12.ipa
Паук и Свободная Ячейка на очереди, когда будет время и вдохновение сделаю их тоже.
iTunes Store: itunes.apple.com/ru/app/id529584384
iTunes Store (HD): itunes.apple.com/ru/app/id529586974 (осторожно, платная! пишите в ЛС, дам промо-код)
Google Play: play.google.com/store/apps/details?id=net.runserver.solitaire
IPA файл (HD): 4pda.ru/forum/dl/post/1858577/Solitaire_0.12.ipa
Паук и Свободная Ячейка на очереди, когда будет время и вдохновение сделаю их тоже.
0
Скажите, какое мнение составилось о Sharpen?
0
Довольно мощный инструмент, но слабовато документирован и требует полной валидности конвертируемого кода. Не очень дружит с дженериками, а для нормального переноса коллекций надо писать конфиг. Некоторые вещи сделаны странно, например, java.lang.String.split преобразуется в Sharpen.Runtime.Split(str1, str2). Вместо Shapen.Runtime можно подставлять имя своего обработчика, но сам метод придется реализовывать вручную.
Интеграция в Eclipse и запуск конверсии тоже немного хромают, но это можно пережить.
Еще есть версия от Xamarin, которой они якобы смогли весь Android перевести в C#, но я о ней узнал поздновато и еще не изучал.
Интеграция в Eclipse и запуск конверсии тоже немного хромают, но это можно пережить.
Еще есть версия от Xamarin, которой они якобы смогли весь Android перевести в C#, но я о ней узнал поздновато и еще не изучал.
0
Спасибо!
Мои 0,99 вам.
Мои 0,99 вам.
0
UFO just landed and posted this here
UFO just landed and posted this here
Я одинаково хорошо знаю C# и Java, потому через некоторое время исследования MonoDroid пришел к выводу, что полезность этого продукта для меня довольно сомнительна. В первую очередь, MonoTouch/MonoDroid не предоставляют универсального подхода к GUI, а только обертки вокруг системных библиотек. Т.е. надо точно так же делать Activity, View и XML Layouts на MonoDroid как и в чистой Java, а на MonoTouch работать с UIApplication, UIViewController и UIView как и в ObjC. Синтаксис же у С# и Java очень похож, производительность разработки/программы выходит одинаковая, но при этом IDE MonoDevelop заметно проигрывает по удобству Eclipse. Не маловажный момент и в том, что Android документации для Java на порядок больше, включая исходники системы.
В конце-концов, MonoDroid добавляет к каждой программе груз в 3-4 мегабайта своих библиотек. Для сравнения, версия «Косынки» под Android занимает 125кб.
В конце-концов, MonoDroid добавляет к каждой программе груз в 3-4 мегабайта своих библиотек. Для сравнения, версия «Косынки» под Android занимает 125кб.
+1
UFO just landed and posted this here
А чем обусловлен ваш «переезд»? Я просто на C# немнго в Unity3D пишу, хочу перевести пару приложений с android на ios, вот думаю, стоит ObjC пилить или все таки Mono использовать, многие уверяют, что Mono для серьезных дел не подходит :(
0
Пожалуй, оставлю здесь одну (но хорошую) ссылку на «велосипедные» карточные игры на вебе — www.razlozhi.ru/
0
Sign up to leave a comment.
История о велосипеде