最近在工作中使用Objective-C开发iOS客户端程序,它一方面和Server通讯,处理网络连接,收发报文,实现业务逻辑;另一方面为UI层提供各种业务API.

 
下面记录用到的相关知识点,困难,解决方法等.
 
1. 使用开源项目的代码,加快开发速度,而且许多开源项目功能丰富,也比较稳定.
我在开发中用到的:
1)网络:
GCD Async Socket: 功能强大的异步socket库
AFNetwork:一个轻量级的iOS网络通信类库
ASIHttpRequest: 也是一个很出名的封装了的网络库
Reachability: 苹果提供的例程, 检测手机不同网络模式下的联网情况
2)安全加密:
RSA加密: 使用Security库,网上有很多实现,需要作der证书.这儿花了很多功夫,开始使用openssl实现,但是生成的库文件因此增大1M左右, 后来优化才搞定.
MD5加密: 库CommonDigest中有实现,但是需要再稍稍封装下.
Base64加密: Google的GTMBase64 
3)日志
LumberJack,很好的日志系统
4)协议
ProtocolBuffer:一种与语言无关, 平台无关, 扩展性好的通讯协议, 数据存储的结构化串行化方法.
参考: http://blog.csdn.net/21aspnet/article/details/6594036
 
2. Objective-C语言相关:
开发过程其实也是学习OC的过程,因为公司项目紧,没初学几天就开始开发了.这里总结常用到的语法相关的东西,而且很容易忘了或者搞混.
1) NSData 和 NSString的定义, 初始化, 赋值, 以及二者的互相转换,而且涉及到字符串编码问题,很容易出错;
另外也经常遇到Byte和这两个之间的转换使用;
2) self, super, property, synthesise等这些语法,新手开始用总是不太清楚;
3) 指针的问题, 我原来用C开发还比较习惯, 如果原来作Java开发,则可能经常会在这儿遇到编译出错问题;
 
3. iOS相关:
我原来一直进行Linux server端开发,现在是手机客户端, 新的语言,开发设计过程需要经常调整思维模式.
1) 内存,文件读写传输等涉及size的要考虑;
2) iPhone手机对应多个iOS版本,客户端要求都能适应,可能会出现某个版本运行就会crash但其他版本没事的问题;
3) 手机device信息查询,特别device id的获取,iOS 6.0 还好, 5.0获取device id接口作废了,后来为了统一只好使用网卡mac地址自己生成device id了.
4) 开发的时候,使用模拟器测试,但程序最后还是跑在手机上,有可能模拟器ok,但是真机不行的问题;
比如用到自己编的静态lib库,iOS前后台处理的问题

iOS开发总结的更多相关文章

  1. iOS开发系列--Swift语言

    概述 Swift是苹果2014年推出的全新的编程语言,它继承了C语言.ObjC的特性,且克服了C语言的兼容性问题.Swift发展过程中不仅保留了ObjC很多语法特性,它也借鉴了多种现代化语言的特点,在 ...

  2. iOS开发系列--打造自己的“美图秀秀”

    --绘图与滤镜全面解析 概述 在iOS中可以很容易的开发出绚丽的界面效果,一方面得益于成功系统的设计,另一方面得益于它强大的开发框架.今天我们将围绕iOS中两大图形.图像绘图框架进行介绍:Quartz ...

  3. iOS开发之再探多线程编程:Grand Central Dispatch详解

    Swift3.0相关代码已在github上更新.之前关于iOS开发多线程的内容发布过一篇博客,其中介绍了NSThread.操作队列以及GCD,介绍的不够深入.今天就以GCD为主题来全面的总结一下GCD ...

  4. 总结iOS开发中的断点续传那些事儿

    前言 断点续传概述 断点续传就是从文件赏赐中断的地方重新开始下载或者上传数据,而不是从头文件开始.当下载大文件的时候,如果没有实现断点续传功能,那么每次出现异常或者用户主动的暂停,都会从头下载,这样很 ...

  5. iOS开发系列文章(持续更新……)

    iOS开发系列的文章,内容循序渐进,包含C语言.ObjC.iOS开发以及日后要写的游戏开发和Swift编程几部分内容.文章会持续更新,希望大家多多关注,如果文章对你有帮助请点赞支持,多谢! 为了方便大 ...

  6. iOS开发系列--App扩展开发

    概述 从iOS 8 开始Apple引入了扩展(Extension)用于增强系统应用服务和应用之间的交互.它的出现让自定义键盘.系统分享集成等这些依靠系统服务的开发变成了可能.WWDC 2016上众多更 ...

  7. iOS开发系列--Swift进阶

    概述 上一篇文章<iOS开发系列--Swift语言>中对Swift的语法特点以及它和C.ObjC等其他语言的用法区别进行了介绍.当然,这只是Swift的入门基础,但是仅仅了解这些对于使用S ...

  8. iOS开发系列--通讯录、蓝牙、内购、GameCenter、iCloud、Passbook系统服务开发汇总

    --系统应用与系统服务 iOS开发过程中有时候难免会使用iOS内置的一些应用软件和服务,例如QQ通讯录.微信电话本会使用iOS的通讯录,一些第三方软件会在应用内发送短信等.今天将和大家一起学习如何使用 ...

  9. iOS开发系列--通知与消息机制

    概述 在多数移动应用中任何时候都只能有一个应用程序处于活跃状态,如果其他应用此刻发生了一些用户感兴趣的那么通过通知机制就可以告诉用户此时发生的事情.iOS中通知机制又叫消息机制,其包括两类:一类是本地 ...

  10. iOS开发系列--地图与定位

    概览 现在很多社交.电商.团购应用都引入了地图和定位功能,似乎地图功能不再是地图应用和导航应用所特有的.的确,有了地图和定位功能确实让我们的生活更加丰富多彩,极大的改变了我们的生活方式.例如你到了一个 ...

随机推荐

  1. 第12章 网络基础(1)_网络分层和TCP/IP协议族

    1. 协议的概念 (1)计算机网络中实现通信必须有一些约定.如对速率.传输代码.代码结构.传输控制步骤和出错控制等约定,这些约定即被称为通信协议 (2)在两个节点之间要成功地进行通信,两个节点之间必须 ...

  2. solr联合多个字段进行检索(multivalued和copyfield的使用)

    在实际工作中不仅仅对索引中的单个字段进行搜索.需要进行综合查询. 比如book表中有id,name(标题),price,summary(摘要),content(内容),我们要找一本书的时候,查询关键字 ...

  3. Selenium2+python自动化75-非input文件上传(SendKeys)

    前言 不少小伙伴问非input标签如何上传文档,这个本身就是一坑,无奈很多小伙伴非要跳坑里去,那就介绍一个非主流的上传文件方法吧,用第三方库SendKeys. 只支持python2环境 python3 ...

  4. JS修改属性,六种数据类型

    JS修改属性 一般修改单个属性是通过JS修改的,比较方便.改多个属性通过css样式改更方便. 1.特殊:通过JS修改包含"-"符号的属性,例如margin-top // 特殊 修改 ...

  5. 隐藏bat脚本运行时弹出的黑窗口,以隐藏进程在后台执行.

    1.把这段代码写在前面@echo offif "%1"=="r" goto startif "%1"=="h" goto ...

  6. IP 别名和辅助 IP 地址

    https://blog.csdn.net/xiewen99/article/details/54729112?utm_source=itdadao

  7. springVC + logback

    为什么用logback,而不是log4j? springmvc log只输出到console,不输出到文件 Spring MVC集成slf4j-logback springMVC如何配置logback ...

  8. Sender 转换TButtonItem TCategoryButtons

    http://codeverge.com/embarcadero.cppbuilder.using/using-sender-to-determine-which/1068317 http://qc. ...

  9. a 超链接标签

    Title百度 第一章 第一章 第一章内容 第二章内容 <!DOCTYPE html><html lang="en"><head> <me ...

  10. CSS选择器学习小结

    关于CSS选择器的问题,在实际项目中,以及一般的前端面试中会经常遇到.下面对此做一小结,梳理和巩固相关方面知识.(如有不妥之处,还望大家及时批评指正,以免误导他人) 一.选择器种类 1.id选择器(# ...