计本 iPhone手机应用开发设计(爱炒股) - 图文(6)

2020-02-21 22:07

6.3数据库

6.3.1 数据库表 1、AStocklist

表6-2 股票表

属性 id code name pinyin market 2、TradingAccount

表6-3 账户表

属性 accountNumber password initialMoney yueMoney keyongMoney dongjieMoney gupiaoMoney zichanMoney bundlePhoneNumber 3、ChiCangTable

表6-4 持仓表

属性 stockName stockCode yueAmount keyongAmount dongjieAmount marketPrice cost 类型 Text Text Integer Integer Integer Float Float 说明 股票名称 股票代码 余额 可用数量 冻结数量 市场价格 成本价格 类型 Text Text Float Float Float Float Float Float Text 说明 用户名 登陆密码 初始金额 剩余金额 可用资金 冻结资金 股票资产 总资产 绑定号码 类型 Integer Text Text Text Text 说明 股票ID 股票代码 股票名称 股票拼音 市场 26

profitAndLoss profitAndLossPrecent marketValue gudongNumber marketSegment dealTime 4、HistroySearch

Float Float Float Text Text Text 盈亏 盈亏比 市场价值 股东账号 市场 交易时间 表6-5 持仓表

属性 code name pinyin market 5、OptionalStock

表6-6 自选股表

属性 stockCode stockName stockPlate 6、TradingRecordTable

表6-7 交易记录表

属性 tradingTime tradingSummary tradingMoney totalMoney tradingAccount 7、WeiTuoTable

表6-8 委托表

属性 isCancel way price 类型 Bool Text Float 说明 是否可撤 委托方式(买/卖) 委托价格 类型 Text Text Float Float Text 说明 成交时间 成交内容 成交金额 总资产 交易账户 类型 Text Text Text 说明 股票代码 股票名称 市场 类型 Text Text Text Text 说明 股票代码 股票名称 股票拼音 市场 27

amount money stockName stockCode gudongNumber marketSegment status time 6.3.2 数据库的单例实现

Integer Float Text Text Text Text Text Text 委托数量 委托金额 股票名称 股票代码 股东账户 市场 成交状态 委托时间 在对数据库中的数据中进行操作时必须保证每次操作完成后才能进行下一次的操作,所以该类只

能有一个实例,所以需要使用单例,通过它封装一个共享的资源,提供一个固定的实例创建方法及一些实例访问的接口。关键代码如下:

+ (ZMPDatabase *)shareInstance{ @synchronized(_zmpDatabase){ if (!_zmpDatabase) {

_zmpDatabase = [[ZMPDatabasealloc] init]; } }

return_zmpDatabase; }

6.4数据的存储

6.4.1图片的缓存处理

iStock应用中有大量的图片数据,这些都是比较耗流量的,因此为了用户着想必须对图片进行缓

存处理。通过SDWebImage第三方库来处理图片缓存。SDWebImage首先会更根据URL在本地缓存中查找图片,如果该图片存在就通过回调机制来显示图片;如果该图片不存在,那么它将会根据URL地址进行下载,由 NSURLConnection 来做异步下载,实现相关的delegate 代理方法来判断图片下载中、下载完成和下载失败所处状态。在connection:didReceiveData: 该方法中利用 ImageIO 可以实现图片加载效果之类的特效。在connectionDidFinishLoading: 该代理方法中判断图片数据全部下载完成之后交给SDWebImageDecoder进行图片的解码处理。图片解码处理在一个 NSOperationQueue完成,并不会影响主线程 UI,而造成的卡顿现象。 6.4.2用户信息的缓存

用户登录有两种方式,一是通过本地注册后登录;二是直接通过微博账号登录。用户通过本地注

[1]

28

册的方式进行登录时,通过userDefault来对用户的信息进行存储。用户通过第二种方式登录时,使用Parse第三方库自动对用户的信息进行一段时间的缓存。

//将登录用户信息存储到本地

NSUserDefaults *ud = [NSUserDefaultsstandardUserDefaults];

[ud setObject:app.user.userNameforKey:@\] [ud synchronize];

//读取用户信息

NSUserDefaults *ud = [NSUserDefaultsstandardUserDefaults]; ZMPUser *user = [[ZMPUseralloc] init];

user.userName = [ud objectForKey:@\];

6.4.3交易数据的存储

当用户进行模拟交易时会产生大量数据,例如交易股票价格、数量、成交时间等等,该类数据主

要以数据库的存储方式进行存储。通过第三方框架FMDB对数据库进行读写操作,并封装成方法(插入、删除、修改、读取等),主要有以下几类操作方法:

+ (SimpleDatabase *)sharedInstance;

- (BOOL)insertIntoDatabase:(NewsModel *)model; - (BOOL)deleteFromDatabase:(int)newsId;

- (BOOL)updateDatabase:(NewsModel *)model; - (NSMutableArray *)selectFromDatabase; - (void)closeDatabase;

6.5 数据安全

6.5.1 MD5加密实现

在iOS开发过程中,为了保证数据的安全,通常会进行一些加密操作,比如DES加密、MD5加密

等。DES加密是可逆的,MD5加密目前来说一般是不可逆的。

MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致,是计

[3]

算机广泛使用的杂凑算法之一。在iStock应用中,对用户的信息进行加密后存储。MD5加密算法最终产生128bit固定长度,而在实际的应用开发中,通常是以16进制输出的,即产生32位16进制的字符。在随机产生的字符中大小写混杂在一起,之后可对其进行二次处理来产生32位大写或者小写字符串。

关键代码如下;

29

+ (NSString *)md5HexDigest:(NSString*)password {

constchar *original_str = [password UTF8String]; unsignedchar result[CC_MD5_DIGEST_LENGTH]; CC_MD5(original_str, strlen(original_str), result); NSMutableString *hash = [NSMutableStringstring];

for (int i = 0; i

X是格式控制符:‘x’表示以16进制输出,‘02’表示不足两位,前面补0; */

[hash appendFormat:@\, result[i]]; }

NSString *mdfiveString = [hash lowercaseString]; NSLog(@\加密结果:%@\,mdfiveString); return mdfiveString; }

6.5.2 指纹识别

iStock项目中,在进行委托交易时,通过指纹来确定是否交易。模拟现实中的安全交易模式。如

图6-3和图6-4。

图6-3 指纹确定交易开启按钮 图6-4 指纹确定交易

关键代码如下:

30


计本 iPhone手机应用开发设计(爱炒股) - 图文(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:Fluent计算时outflow 与 pressure outlet的区别

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: