ios服務端開發(fā),ios 開發(fā)

ios開發(fā)是什么?

Swift是Apple在WWDC2014所發(fā)布的一門編程語言,可以用來編寫iOS應用程序。在設計Swift時.就有意和Objective-C共存。蘋果宣稱Swift的特點是:快速、現(xiàn)代、安全、互動,且全面優(yōu)于Objective-C語言。2015年06月09日,蘋果通過WWDC大會上宣布Swift開源。這意味著可以用它來進行開發(fā)跨平臺的應用?,F(xiàn)在已經(jīng)有人使用Swift來開發(fā)服務端程序了。這些看上去都十分美好。但是Swift經(jīng)歷的時間畢竟太短,版本變化太快,甚至于1.0,2.0簡直就是2個語言。何況很多公司的項目都是Objective-C進行編寫的,要想一下子轉(zhuǎn)成Swift進行開發(fā)還是有較大的難度的。所以本課程會以Objective-C為主要語言。在課程技術(shù)的時候補充下Swift語言語法。學一門編程語言其實難度不大,難得是需要去學習框架,了解框架,這些都需要花大量的時間。一旦我們學會了UIKit等框架之后用Swift編寫App是很容易上手的。希望能幫到你,歐克

網(wǎng)站建設哪家好,找創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、微信小程序、集團企業(yè)網(wǎng)站建設等服務項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了長白免費建站歡迎大家使用!

iOS開發(fā):Objective-C精確的貨幣計算

本文轉(zhuǎn)自: iOS開發(fā):Objective-C精確的貨幣計算 - ArthurChen - 51CTO技術(shù)博客

iOS開發(fā)中有時需要我們精度的嚴格處理,比如關于用戶資金的數(shù)目處理,比較好的建議是服務端直接返回金額數(shù)目為字符串類型,這樣客戶端就不用擔心精度顯示了,如果我們需要對服務端返回過來的數(shù)據(jù)進行操作,比如:服務端兩個數(shù)字float a = 0.01, int b = 99999999,兩數(shù)相乘的結(jié)果是999999.99,就需要考慮精度的問題了。再比如對 flat a = 123456789.12,int b = 10000,兩數(shù)相除

在iOS開發(fā)中,和貨幣價格計算相關的,需要注意計算精度的問題。即使只是兩位小數(shù),也會出現(xiàn)誤差。使用float類型運算,是完全不夠的。經(jīng)過一番測試,最后選擇使用系統(tǒng)提供的API的NSDecimalNumber來進行更好的解決。

作為一個對外的庫,鑒于版本延續(xù),我們保留對外的flaot的類型,不改變接口,選擇進行內(nèi)部適配。

以下是一些基本的測試,

原始數(shù)據(jù)

floata =0.01;

intb =99999999;

doublec =0.0;

1:使用浮點運算,

c = a*b;

NSLog(@"%f",c);

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

使用double類型存儲沒有觸及問題的實質(zhì),完全不能解決。

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:使用類型轉(zhuǎn)換,提高精度

c = a*(double)b;

NSLog(@"%f",c);

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

Double運算的精度是提高了,可是浮點數(shù)的數(shù)值早已經(jīng)出現(xiàn)了精度的不準確,即使存儲空間足夠,同樣還是不準確的數(shù)值。

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的轉(zhuǎn)換,將計算的原始數(shù)據(jù)轉(zhuǎn)換為純粹的double類型的數(shù)據(jù),這樣的計算精度就可以達到要求了。

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

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

c = [objAdoubleValue] * [objBdoubleValue];

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

計算的結(jié)果還是比較準確的,不過需要做格式化輸入和格式化輸出的處理。同時使用NSString來轉(zhuǎn)換,這樣的寫法看起來比較奇怪。

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

4:個人還是比較喜歡使用系統(tǒng)提供的類型來進行計算。通過NSDecimalNumber提供的計算方式,可以很好的計算出準確的精度的數(shù)據(jù),同時不需要使用格式化輸出等。

其計算的精度是比較高,這是官方建議的貨幣計算的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

只是測試,所以接口名大致寫寫,名字取得比較不那么講究,希望可以表達清楚。

總的來說,對于貨幣計算,應該需要注意精度的問題。同時在運算的時候,應該優(yōu)先選用框架提供的API,否則,就應該使用足夠精度的類型運算,同時對自己寫的接口進行足夠的說明,要求開發(fā)者按照規(guī)范來使用。

在自己不能保證足夠準確的情況下,用適當?shù)恼f明的要求來規(guī)避責任還是可以接受的。至少被人抱怨兩句總比出錯強。

給iOS程序提供數(shù)據(jù)的服務器端采用什么開發(fā)更好

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

在選擇時,Ruby on Rails,Django 第一個出局,因為考慮到 API 應該輕,快。

Python 曾經(jīng)用過 Flask,考慮過 Bottle。不過兩者的 Extensions 的功能都無法需求。

Ruby 的 Sinatra 是最好用的。選擇 Sinatra + Mongoid,一個星期可以搞出來(我自己的情況)。

現(xiàn)在選擇用 NodeJS 的 ExpressJS + Mongoose 搭配。從 Ruby 轉(zhuǎn)成 Node,主要是因為看上 NodeJS 的性能。Request per Second 的話,NodeJS 7000 左右,ExpressJS 3000 左右,Sinatra 900 左右,Ruby on Rails 300 左右。

我寫 JavaScript 都是用 CoffeeScript 寫的,所以寫起來就像寫 Ruby 或 Python 一樣,非常 Lisp。

ExpressJS 的開發(fā)也是這些框架里面,最活躍的。

一個資深的iOS開發(fā)者需要掌握哪些技能

掌握技術(shù)和管理兩方面的吧 技術(shù)方面:熟悉掌握Objective-C語言、XCode開發(fā)環(huán)境、ios UI布局、架構(gòu)計; 理解面向?qū)ο笤O計的基本原則,熟悉常用的設計模式,有獨立分析和解決問題的力; 理解手機客戶端軟件及服務端開發(fā)特點; 管理方面: 理解和分析產(chǎn)品需求,制定合理開發(fā)計劃; 負責公司IOS端APP的開發(fā)和維護; 帶領團隊解決各種開發(fā)上的問題,確保項目按期完成; 提升團隊成員整體水平,對產(chǎn)品提出改進意見;

IOS開發(fā)要學習哪些方面的知識?

第一步:編程入門課

時間預計:4個星期

推薦看公開課,Udacity也行,網(wǎng)易公開課也行,自己找一個面對對象語言(一般是JAVA, C++, Python)的課。我是在網(wǎng)易公開課看的斯坦福的CS106A,學的JAVA。

如果你純粹學iOS開發(fā),不推薦看哈佛CS50,CS50是給CS系的學生介紹整個計算機世界的框架,講的內(nèi)容比較多,進度比較快,對iOS開發(fā)其實有點累贅了。(臣妾有點跟不上?。。。?/p>

計劃安排是一天一課,看課程要求的書(至少看完一本)及大部分作業(yè)。這一階段重點不是語法,而是以下3個目標。

目標:

1. 讓自己對編程這件事感到適應。

寫hello world。

怎么寫function, 怎么調(diào)用function。

全局變量,局部變量這類基本知識點。

都是基本的東西??纯磿?,寫多兩個程序就歐啦。

2. 掌握編程語言的基本要素。

編程語言4個要素:

a. 基本的數(shù)據(jù)類型:整數(shù),實數(shù),character, string, boolean

b. 基本的運算符號:+-×/++--那啥的

c. 怎樣輸入輸出

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

3. 了解編程范式

面對過程編程。

面向?qū)ο缶幊獭?/p>

第二步:上手iOS!

時間預計:2星期

強烈推薦CS193P,老頭子講的超級好!我的很多東西(對象思維啥的)是在這里跟著做練習的時候才真正明白的(好啦,也可能是上一堂課練習做得少的原因)。如果等到9月應該itunes U上會開始教iOS 7了。網(wǎng)易公開課的是2010年iOS 5版的,前10堂課,也行。(iTunes U上有完整的課)

CS193P說有prerequisite,一開始被嚇到,事實證明還是可以學下去的。頭兩節(jié)課一頭霧水,沒關系,把itunes U上的課件下載下來,把所有代碼打出來,然后一個個元素對應之前學的語言匹配,再不懂先放著,繼續(xù)學后邊的,過幾天打多點代碼就懂了。

感覺學5、6堂課,一個星期左右就可以開始進入下一階段自己做東西了。之后用啥學啥,每堂課都有主題的。速度慢點的同學們,這階段跟我一樣準備兩個星期吧!

第三步:開發(fā)app!

時間預計:2星期(本人...1個半月,實在不好意思說出口)

這個時間就可長可短啦,還包括美工,交互啥的。堅持要用啥學啥的原則,其實就是知道iOS SDK都有什么組件,每個組件有什么function而已。stackoverflow, Github, apple sample code多上,搜索引擎多用。如果有個師傅,這個階段真的是進步神速。

好的!不出意外,你的第一個app就這么新鮮出爐了!從今天開始,成為一個冷艷逼格高尚的iOS開發(fā)者吧!

分享標題:ios服務端開發(fā),ios 開發(fā)
路徑分享:http://muchs.cn/article38/phehpp.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設計、手機網(wǎng)站建設、響應式網(wǎng)站、面包屑導航、電子商務、靜態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應式網(wǎng)站建設