//

//  设备数据管理类

#import <Foundation/Foundation.h>

#import "DeviceInfo.h"

@interface DeviceDataManager : NSObject

{

NSMutableArray *dataArray;

}

+(DeviceDataManager *)instance;

-(NSMutableArray *)allDeviceData;//返回所有本地存储的设备

-(DeviceInfo *)getDeviceInfoWith:(NSString *)mac;//根据mac地址返回该设备的信息

-(BOOL)insertOrReqlaceSignalDevice:(DeviceInfo *)devInfo;//插入或修改指定的设备信息

-(BOOL)deleteDeviceWith:(NSString *)mac;//删除指定mac地址的设备

@end

//

//  DeviceDataManager.m

//  SmartHomeWIFI

//

//  Created by 深圳市 秀软科技有限公司 on 14-2-20.

//  Copyright (c) 2014年 huhuaxiang. All rights reserved.

//

#import "DeviceDataManager.h"

#import "SQLdataManger.h"

static DeviceDataManager *devInfoManager;

@implementation DeviceDataManager

-(id)init

{

if(self=[superinit])

{

}

returnself;

}

+(DeviceDataManager *)instance

{

if(!devInfoManager)

devInfoManager=[[DeviceDataManageralloc]init];

returndevInfoManager;

}

-(NSMutableArray *)allDeviceData

{

if(!dataArray||dataArray.count<1)

[selfdataArrayInit];

returndataArray;

}

-(DeviceInfo *)getDeviceInfoWith:(NSString *)mac

{

for (DeviceInfo *info indataArray) {

if([info.mac isEqualToString:mac])

return info;

}

returnnil;

}

-(BOOL)insertOrReqlaceSignalDevice:(DeviceInfo *)devInfo

{

if(!devInfo)return NO;

BOOL flag=[[SQLdataMangerinstance]insertOrReqlaceSignalDevice:devInfo];

if(flag)

{

//如果存在则删除原来的,更新现在的

DeviceInfo *info;

BOOL exite=NO;

for (int i=0; i<dataArray.count; i++) {

info=[dataArray objectAtIndex:i];

if([info.mac isEqualToString:devInfo.mac])

{

info=devInfo;

exite=YES;

}

}

if(!exite)

[dataArray addObject:devInfo];

}

return flag;

}

-(BOOL)deleteDeviceWith:(NSString *)mac

{

BOOL flag=[[SQLdataMangerinstance]deleteTableDataWithMAC:mac];

if(flag)

{

for (DeviceInfo *info in dataArray) {

if([info.mac isEqualToString:mac])

[dataArray removeObject:info];

}

}

return flag;

}

-(void)dataArrayInit

{

NSArray *dataA=[[SQLdataMangerinstance]queryDeviceInfoTable];

dataArray=[[NSMutableArrayalloc]initWithArray:dataA];

}

@end

数据库和3G的结合使用的更多相关文章

  1. 利用Navicat高效率postgresql转mysql数据库

    本人很喜欢postgresql数据库,也一直认为postgresql比mysql要更好更强大. 可生态环境太差了,无奈,最近要把一个小站转成mysql数据库. 小站主要表数据110万,pg_dump备 ...

  2. 织梦cms PHPcms 帝国cms比较

    现在建网站不需要请程序员从基础的程序开发做起了,有专业的建站工具,CMS是使用最广泛的建站工具.CMS是Content Management System 现在建网站不需要请程序员从基础的程序开发做起 ...

  3. 对帝国cms、dedecms、phpcms等负载测试总结

    来自:http://www.chinaz.com/web/2013/0729/311360.shtml 担心被骂,本不想写这篇文章.犹豫良久,最终还是决定写.希望能够帮助到一些朋友,认识到数据库索引正 ...

  4. JSP应用开发 -------- 电纸书(未完待续)

    http://www.educity.cn/jiaocheng/j9415.html JSP程序员常用的技术   第1章 JSP及其相关技术导航 [本章专家知识导学] JSP是一种编程语言,也是一种动 ...

  5. EF里查看/修改实体的当前值、原始值和数据库值以及重写SaveChanges方法记录实体状态

    本文目录 查看实体当前.原始和数据库值:DbEntityEntry 查看实体的某个属性值:GetValue<TValue>方法 拷贝DbPropertyValues到实体:ToObject ...

  6. MVC Code First 自动生成数据库

    1.新建一个MVC项目

  7. TPC-H生成.tbl文件导入postgresql数据库的坑

    数据库project好好的不用主流的MySQL和Microsoft server而要求用听都没听过的postgresql (当然,可能你三个都没听过) 这里的坑主要是把生成的那八张.tbl的表导入pg ...

  8. IP地址数据库-ISP运营商列表(2017年1月)

    IP地址数据库  微信号:qqzeng-ip [全球旗舰版][国内精华版][国外拓展版][英文版][掩码版]     http://qqzeng.com 中国大陆:三大基础运营商 中国电信中国联通中国 ...

  9. Hibernate映射文件创建和删除触发器,存储过程等数据库对象

    创建表,触发器,和存储过程等数据库对象,这里一定要用create 在hibernate.cfg.xml文件中

随机推荐

  1. oracle dbms_JOB

    添加一个任务,怎么老是报错 [SQL] DECLARE job1 number; begin dbms_job.submit(job1,'RESTUDY_SCORE_IMPORT',sysdate,' ...

  2. DEVEXPRESS控件使用技巧记录-GRIDCONTROL

    1. 存在父子表的时候,只允许父表的一条记录展开,其他记录都收起 方法:Feature Browser -> Master-Detail -> behavior -> AllowOn ...

  3. C#调用斑马打印机打印条码标签(支持COM、LPT、USB、TCP连接方式和ZPL、EPL、CPCL指令)【转】

    原文地址:http://blog.csdn.net/ldljlq/article/details/7338772 在批量打印商品标签时一般都要加上条码或图片,而这类应用大多是使用斑马打印机,所以我也遇 ...

  4. javascript实现列表的点击展开折叠

    <script> window.onload = function() { //要折叠的区域 var catalog = document.getElementById("div ...

  5. Strategy pattern策略模式

    在Java的集合框架中,经常需要通过构造方法传入一个比较器Comparator,或者创建比较器传入Collections的静态方法中作为方法参数,进行比较排序等,使用的是策略模式. 一.策略模式的定义 ...

  6. algorithm -- 基本介绍

    为学习算法和使用.实践 GIT & GitHub ,而写此系列. 我使用的编译器是 visual studio community 2015 低版本的VS打不开GitHub中的解决方案,拷贝代 ...

  7. Coding源码学习第四部分(Masonry介绍与使用(二))

    接上篇,本篇继续对Masonry 进行学习,接上篇示例: (6)Masonry 布局实现iOS 计算器 - (void)exp4 { WS(weakSelf); // 申明区域,displayView ...

  8. Python学习07——字典(2)

    笨办法学Python第40节,上次用的第三版的书,这次是第四版的书. 这一节的代码如下: cities = {'CA':'San Francisco', 'MI':'Detroit', 'FL':'J ...

  9. 7个步骤:让JavaScript变得更好

    Dan Odell介绍了他编写的七步写出无瑕代码的计划,是在简化过程中最有用的工具.   随着浏览器性能提高,伴随着新的HTML5的编程接口的稳步采用,网页上的JavaScript的音量在逐渐增加.然 ...

  10. 将halcon导出的c++程序打包成dll库

     1.从“文件”菜单中,选择“新建”,然后选择“项目…”. 2.从“项目类型”窗格中选择“Visual C++”下的“Win32”. 3.从“模板”窗格中,选择“Win32 控制台应用程序”. 4.为 ...