RELATEED CONSULTING
相关咨询
选择下列产品马上在线沟通
服务时间:8:30-17:00
你可能遇到了下面的问题
关闭右侧工具栏

新闻中心

这里有您想知道的互联网营销解决方案
ios服务端开发,ios 开发

ios开发是什么?

Swift是Apple在WWDC2014所发布的一门编程语言,可以用来编写iOS应用程序。在设计Swift时.就有意和Objective-C共存。苹果宣称Swift的特点是:快速、现代、安全、互动,且全面优于Objective-C语言。2015年06月09日,苹果通过WWDC大会上宣布Swift开源。这意味着可以用它来进行开发跨平台的应用。现在已经有人使用Swift来开发服务端程序了。这些看上去都十分美好。但是Swift经历的时间毕竟太短,版本变化太快,甚至于1.0,2.0简直就是2个语言。何况很多公司的项目都是Objective-C进行编写的,要想一下子转成Swift进行开发还是有较大的难度的。所以本课程会以Objective-C为主要语言。在课程技术的时候补充下Swift语言语法。学一门编程语言其实难度不大,难得是需要去学习框架,了解框架,这些都需要花大量的时间。一旦我们学会了UIKit等框架之后用Swift编写App是很容易上手的。希望能帮到你,欧克

网站建设哪家好,找创新互联公司!专注于网页设计、网站建设、微信开发、微信小程序、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了长白免费建站欢迎大家使用!

iOS开发:Objective-C精确的货币计算

本文转自: iOS开发:Objective-C精确的货币计算 - ArthurChen - 51CTO技术博客

iOS开发中有时需要我们精度的严格处理,比如关于用户资金的数目处理,比较好的建议是服务端直接返回金额数目为字符串类型,这样客户端就不用担心精度显示了,如果我们需要对服务端返回过来的数据进行操作,比如:服务端两个数字float a = 0.01, int b = 99999999,两数相乘的结果是999999.99,就需要考虑精度的问题了。再比如对 flat a = 123456789.12,int b = 10000,两数相除

在iOS开发中,和货币价格计算相关的,需要注意计算精度的问题。即使只是两位小数,也会出现误差。使用float类型运算,是完全不够的。经过一番测试,最后选择使用系统提供的API的NSDecimalNumber来进行更好的解决。

作为一个对外的库,鉴于版本延续,我们保留对外的flaot的类型,不改变接口,选择进行内部适配。

以下是一些基本的测试,

原始数据

floata =0.01;

intb =99999999;

doublec =0.0;

1:使用浮点运算,

c = a*b;

NSLog(@"%f",c);

NSLog(@"%.2f",c);

使用double类型存储没有触及问题的实质,完全不能解决。

2011-12-30 11:04:00.121 Untitled[2912:207] 1000000.000000

2011-12-30 11:04:00.123 Untitled[2912:207] 1000000.00

2:使用类型转换,提高精度

c = a*(double)b;

NSLog(@"%f",c);

NSLog(@"%.2f",c);

Double运算的精度是提高了,可是浮点数的数值早已经出现了精度的不准确,即使存储空间足够,同样还是不准确的数值。

2011-12-30 11:04:00.123 Untitled[2912:207] 999999.967648

2011-12-30 11:04:00.124 Untitled[2912:207] 999999.97

3:通过和NSString的转换,将计算的原始数据转换为纯粹的double类型的数据,这样的计算精度就可以达到要求了。

NSString*objA = [NSStringstringWithFormat:@"%.2f", a];

NSString*objB = [NSStringstringWithFormat:@"%.2f", (double)b];

c = [objAdoubleValue] * [objBdoubleValue];

NSLog(@"%.2f",c);

计算的结果还是比较准确的,不过需要做格式化输入和格式化输出的处理。同时使用NSString来转换,这样的写法看起来比较奇怪。

2011-12-30 11:04:00.190 Untitled[2912:207] 999999.99

4:个人还是比较喜欢使用系统提供的类型来进行计算。通过NSDecimalNumber提供的计算方式,可以很好的计算出准确的精度的数据,同时不需要使用格式化输出等。

其计算的精度是比较高,这是官方建议的货币计算的API,对乘除等计算都有单独的API接口来提供。

NSString *decimalNumberMutiplyWithString(NSString*multiplierValue,NSString*multiplicandValue)

{

NSDecimalNumber*multiplierNumber = [NSDecimalNumberdecimalNumberWithString:multiplierValue];

NSDecimalNumber*multiplicandNumber = [NSDecimalNumberdecimalNumberWithString:multiplicandValue];

NSDecimalNumber*product = [multiplicandNumberdecimalNumberByMultiplyingBy:multiplierNumber];

return[productstringValue];

}

NSLog(@"%@",decimalNumberMutiplyWithString([NSStringstringWithFormat:@"%f",a], [NSStringstringWithFormat:@"%d",b]));

2011-12-30 11:0 4:00.251 Untitled[2912:207] 999999.99

只是测试,所以接口名大致写写,名字取得比较不那么讲究,希望可以表达清楚。

总的来说,对于货币计算,应该需要注意精度的问题。同时在运算的时候,应该优先选用框架提供的API,否则,就应该使用足够精度的类型运算,同时对自己写的接口进行足够的说明,要求开发者按照规范来使用。

在自己不能保证足够准确的情况下,用适当的说明的要求来规避责任还是可以接受的。至少被人抱怨两句总比出错强。

给iOS程序提供数据的服务器端采用什么开发更好

我最近也在做后端,Python,Ruby,Node 都用了一下,最后选择 NodeJS。

在选择时,Ruby on Rails,Django 第一个出局,因为考虑到 API 应该轻,快。

Python 曾经用过 Flask,考虑过 Bottle。不过两者的 Extensions 的功能都无法需求。

Ruby 的 Sinatra 是最好用的。选择 Sinatra + Mongoid,一个星期可以搞出来(我自己的情况)。

现在选择用 NodeJS 的 ExpressJS + Mongoose 搭配。从 Ruby 转成 Node,主要是因为看上 NodeJS 的性能。Request per Second 的话,NodeJS 7000 左右,ExpressJS 3000 左右,Sinatra 900 左右,Ruby on Rails 300 左右。

我写 JavaScript 都是用 CoffeeScript 写的,所以写起来就像写 Ruby 或 Python 一样,非常 Lisp。

ExpressJS 的开发也是这些框架里面,最活跃的。

一个资深的iOS开发者需要掌握哪些技能

掌握技术和管理两方面的吧 技术方面:熟悉掌握Objective-C语言、XCode开发环境、ios UI布局、架构计; 理解面向对象设计的基本原则,熟悉常用的设计模式,有独立分析和解决问题的力; 理解手机客户端软件及服务端开发特点; 管理方面: 理解和分析产品需求,制定合理开发计划; 负责公司IOS端APP的开发和维护; 带领团队解决各种开发上的问题,确保项目按期完成; 提升团队成员整体水平,对产品提出改进意见;

IOS开发要学习哪些方面的知识?

第一步:编程入门课

时间预计:4个星期

推荐看公开课,Udacity也行,网易公开课也行,自己找一个面对对象语言(一般是JAVA, C++, Python)的课。我是在网易公开课看的斯坦福的CS106A,学的JAVA。

如果你纯粹学iOS开发,不推荐看哈佛CS50,CS50是给CS系的学生介绍整个计算机世界的框架,讲的内容比较多,进度比较快,对iOS开发其实有点累赘了。(臣妾有点跟不上啊!!)

计划安排是一天一课,看课程要求的书(至少看完一本)及大部分作业。这一阶段重点不是语法,而是以下3个目标。

目标:

1. 让自己对编程这件事感到适应。

写hello world。

怎么写function, 怎么调用function。

全局变量,局部变量这类基本知识点。

都是基本的东西。看看书,写多两个程序就欧啦。

2. 掌握编程语言的基本要素。

编程语言4个要素:

a. 基本的数据类型:整数,实数,character, string, boolean

b. 基本的运算符号:+-×/++--那啥的

c. 怎样输入输出

d. 怎样控制程序:sequence,selection,loop

3. 了解编程范式

面对过程编程。

面向对象编程。

第二步:上手iOS!

时间预计:2星期

强烈推荐CS193P,老头子讲的超级好!我的很多东西(对象思维啥的)是在这里跟着做练习的时候才真正明白的(好啦,也可能是上一堂课练习做得少的原因)。如果等到9月应该itunes U上会开始教iOS 7了。网易公开课的是2010年iOS 5版的,前10堂课,也行。(iTunes U上有完整的课)

CS193P说有prerequisite,一开始被吓到,事实证明还是可以学下去的。头两节课一头雾水,没关系,把itunes U上的课件下载下来,把所有代码打出来,然后一个个元素对应之前学的语言匹配,再不懂先放着,继续学后边的,过几天打多点代码就懂了。

感觉学5、6堂课,一个星期左右就可以开始进入下一阶段自己做东西了。之后用啥学啥,每堂课都有主题的。速度慢点的同学们,这阶段跟我一样准备两个星期吧!

第三步:开发app!

时间预计:2星期(本人...1个半月,实在不好意思说出口)

这个时间就可长可短啦,还包括美工,交互啥的。坚持要用啥学啥的原则,其实就是知道iOS SDK都有什么组件,每个组件有什么function而已。stackoverflow, Github, apple sample code多上,搜索引擎多用。如果有个师傅,这个阶段真的是进步神速。

好的!不出意外,你的第一个app就这么新鲜出炉了!从今天开始,成为一个冷艳逼格高尚的iOS开发者吧!


分享名称:ios服务端开发,ios 开发
文章起源:http://lswzjz.com/article/phehpp.html