UIKit Core之笔记one

来源:互联网 发布:曾国藩 知其雄 守其雌 编辑:程序博客网 时间:2024/06/15 11:23

真机相关知识点:重力感应(平衡球、摇一摇、赛车类、神庙) GPS 陀螺仪 照相机

XML:封装数据的一种格式  可扩展标记性语言

场景:保存配置数据      数据传递      

作用:1.配置信息2.网络数据传输时的数据封装

XML解析方式:两种

1.SAX解析 :逐行解析   可以解析比较大的数据 不占空间

2.DOM解析:把解析数据全部加载到内存中并在内存中构建树桩结构    结构清晰,操作简单

Plist:   把plist文件加载到内存中 成为数组或字典    

把字典或者数组 保存成plist文件 

plist应用场景:用来保存一些数据 

UserDefaults:偏好设置  应用场景:保存程序的登陆信息   保存游戏最高分或者保存程序的运行次数

CoreData:苹果公司提供的封装了sqlite数据库的框架


下载实现流程

1.给客户段给服务器发获取下载列表的请求

2.进到下载列表页面后,客户端发下载文件列表的请求给服务器

3.服务器接收到请求之后获取本地某个文件夹下面的文件名和文件长度

4.把和文件相关的信息保存到一个NSData里面 返回给客户端

5.客户端接收到data之后从data中解析出文件的信息 显示在列表中

TeamViewewr

网络相关工作步骤:

1.发请求(请求地址 请求参数)

2.接收到服务器的返回数据,(返回的内容包含文件 和文本(1.xml 2.json))

3.如果接收到的是文件就保存或者播放查看等,如果接收到的是文本(xml或json)把接收到的文本解析,创建一个和文本内容相对应的实体对象把数据解析到对象当中

4.把对象当中的数据用各种控件展示出来

三方HTTP框架(提供解决方案 ,直接使用)

web服务 webService WebApi网络接口 网络api

1.网络服务(——>服务器给的请求地址)

http请求方式分为GET和POST

2.GET:把请求参数放到请求路径的后面

http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx?op=getMobileCodeInfo

&用来分割

3.post请求参数放到请求体里面

http://www.baidu.com/s?

多线程:主线程 子线程—>导致界面更新不及时

进程:代表一个程序

线程:一个程序中会有多个线程

耗时的代码不能写在主线程里面

修改页面的代码不能写在子线程

不要把好事操作放在主线程里面

不要把修改页面的代码写在子线程

耗时操作:

1.大量运算 2.各种网络请求 3.加载大文件到内存4.线程睡眠代码 5.网络

切记两句话:******

1.耗时的操作不能放到主线程 因为放到主线程的话会导致渲染界面代码执行不及时 出现界面阻塞状态 用户体验下降 

2.修改界面的操作不能放在子线程里面 如果放在子线程 因为子线程一般处理耗时操作 修改页面的代码要等到所有耗时操作执行完之后才能看到效果,  界面更新不及时

开启线程的方式有三种:

1.NSThead 

2.GCD:Grand Central Dispatch中央任务分发

 通过block开启线程 更底层 更高效 代码简洁

线程队列分为串行队列并行队列

3.NSOperation :可以灵活控制线程之间的关系 可以设置并发的线程数量

同步:依次做几件事 不同时 依次做某件事

异步:几件事同时做  同时做某件事

线程同步三种:

1.同步代码块 @synchronized 

2.NSLock 

3.NSCondition

线程间通信两种方式:

1.Port    

2.performSelector  (只需掌握第二种方式 )

线程间通信可以实现主线程----->子线程     子线程----->主线程    子线程----->其它子线程

线程同步:当多条线程同时去处理某一个数据的时候可能会出现问题

子线程通信

子线程和主线程:

self

    performSelectorOnMainThread:<#(SEL)#> withObject:<#(id)#> waitUntilDone:<#(BOOL)#>

子线程和主线程

self performSelectorOnMainThread:<#(SEL)#> withObject:<#(id)#> waitUntilDone:<#(BOOL)#>

进程间通信

HTTP

https://open.t.qq.com/api/REQUEST_METHOD?oauth_consumer_key=APP_KEY&access_token=ACCESSTOKEN&openid=OPENID&oauth_version=2.a&追加私有参数

//weiboApi类里面调用此方法得到tokenopenid

   WeiboApiObject *wbApiObj = [selfgetToken];

   NSLog(@"%@----%@",wbApiObj.accessToken,wbApiObj.openid);

  • Certificates:证书,创建证书的时候需要用到一台mac电脑的信息,创建出来的证书只能直接用在这台mac上面 如果想用在其它电脑上面 需要从最初的那台mac上面导出证书(从钥匙串访问里面导出),从网站上下载下来的证书格式是cer 如果证书不是自己电脑创建的 只能用p12格式的证书
    Identifiers
    :用来限制公司标识的 通常设置为 * 不对公司标识做任何限制
  • Identifiers标识:用来限制项目的公司标识的  一般*
    Devices
    :设备列表一个99美元的个人版开发者账号可以和100台设备进行绑定,可以从设备列表中关闭某台设备的关联 但是关闭后这个名额仍然占用着
  • Devices:设备列表
  • 个人版:99  只能和100台设备绑定 可上线AppStore
  • 企业版:299  不限设备数量  不能上线只能内部使用Provisioning Profiles:认证文件,此文件需要在电脑上面运行 进行调试之后此文件会自动装到设备里面 ,认证文件此文件会安装到电脑上和手机上 用来标识手机已经添加到了证书里面 如果手机里面有和证书对应的认证文件则不需要通过网络再次认证即可真机调试
  • Certificates证书:创建证书时需要用到mac的信息创建出来的证书只能应用在当前mac上面 如果想用在其它mac电脑上的话 需要从原来的mac上面导出证书(*.p12格式)
0 0
原创粉丝点击