- 博客(37)
- 收藏
- 关注
原创 XMPPFramework的使用
>0原理:建立dataModel,然后建立NSManagedObject,就会自动建立模型和实体间的映射关系. 用NSPersistentStoreCoordinator可以协调Model和Storage之间的关系;>1模式:客户端-服务器-客户端.客户端的信息和聊天记录都存储在了服务器上;>2用XMPPStream实现账户的注册和登录;>3登陆后通过激活xmppRoster模块,让后
2016-06-27 09:09:41
658
原创 IOS开发中的实用技术使用注意点
二维码>1二维码扫描的思路:输入设备,输出设备,两者间的管理者,添加管理者,设置解析类型,展示数据.>2二维码扫描的结果是一个字符串.>3二维码应用所在的框架是 ,在IOS9新增的框架,通过该框架可以创建SFSafariViewController.>4到扫描到需要的内容后需要对管理者进行手动关闭,放置重复扫描.方向/磁力计/陀螺仪>1导入框架.
2016-06-09 10:09:12
708
原创 NSOperation
>1NSOperation操作是抽象的,规范子类的共同属性,子类包括NSInvocationOperation/NSBlockOperation;>2NSBlockOperation的简写: [[[NSOperationQueue alloc] init] addOperationWithBlock:^{};>3与GCD相比优点: OC框架,更加面向对象,是对GCD的封装;
2016-05-05 18:08:08
464
原创 GCD
>1是苹果专门用来处理多核CPU的,可以自动管理线程以及CPU的调用,可以提高效率>2队列 串行(serial dispatch queue) >1任务依次执行(First in First out) >2创建:dispatch_queue_create(“标示符”,DISPATCH_QUEUE_SERIAL); 并行(con
2016-05-05 16:12:09
340
原创 网易新闻逻辑
>1页面分为导航栏和页面展示两部分.上部分可以左右滚动,栏目个数不确定,可以增加,下面页面也一样,所以可以选用CollectionView和ScrollerView,考虑到单元格的重用可以提高效率,因此采用CollectionView来实现;>2开发采用MVVM模式,这样可以减轻ViewController中代码的编写,让导航栏和页面展示栏分别控制自身的Model和View的展示;>3导航
2016-05-05 14:17:29
579
原创 OC/JS/CSS
>1利用UIWebView的 stringByEvaluatingJavaScriptFromString方法可以执行JS代码;>2通过UIWebView的代理方法可以监听网页的加载进程;>3CSS控制网页的样式,有行内/页内/外部三种加载样式;>4JS动态设置网页,写在标签内;
2016-05-05 14:16:51
321
原创 多线程基础
>1多线程可以将耗时操作放在子线程执行,保证UI界面的正常交互,常见的耗时操作:I/0操作和网络请求;>2基本概念 同步:多个任务依次执行;异步:多个任务同时执行; 进程:运行的应用程序;线程:进程的基本单位,用来执行任务; 多线程就是一个进程中开启多个线程; >1优点:可以适当提高程序运行效率和CPU的执行效率;
2016-05-02 14:53:58
330
原创 网络七层协议
>1物理层:规定了计算机的连接方式,规定了连接标准;>2数据链路层:规定0和1的解读方式;(以太网协议,规定了”数据包”的概念);>3网络层:通过IP地址来确定网络中的计算机的位置; 子网掩码与IP地址做”与”运算,得出计算机所在的子网络; IP地址有IPv4,IPv6两种; DNS服务器:将域名解析成IP地址; 网络层建立”主机”到”主机”
2016-05-01 17:37:38
869
原创 HTTP请求
>1HTTP协议:超文本传输协议(Hypertext Transfer Protocol) HTTP协议规定了客户端和服务器之间的数据传输格式; HTTP协议是在网络开发中最常用的协议.不管是移动客户端还是PC端,访问网络资源最常使用的协议 优点 >1简单快速; >2灵活:可以传输任意类型的数据;
2016-05-01 16:22:24
266
原创 NSUrSession和AFN
>1NSUrlSession相当于网络会话层,NSUrlConnection相当于网络连接层;>2NSUrlSession使用的步骤: 实例化网络会话; 根据网络会话和网络需求,实例化网络任务;(NSUrlSessionDataTask,NSUrlDownloadTask,TaskNSUrlSessionUploadTask) 开启网络任务(默认的网络任
2016-05-01 14:57:16
580
原创 文件下载
>1使用NSUrlConnection异步下载文件出现的问题:当下载大文件时,内存暴涨. 解决方法1:NSUrlConnectionDownloadDelegate代理方法,内存正常,无法获取需要存储的data; 解决方法2:NSUrlConnectionDataDelegate代理方法:内存正常,通过NSFileHandle和NSOutputStream可以实现data的
2016-04-28 20:50:49
311
原创 文件上传
>1 POST请求和GET请求的区别 GET请求将参数拼接在url中,不安全; GET请求对参数长度有限制; GET请求没有请求体 而POST请求与GET请求相反>2 文件上传采用POST请求,将文件内容放在请求体中 文件上传的步骤: 设置请求头的数据格式和边界格式 拼接内容,严格按照格式:上边界,内容,下边界
2016-04-28 20:50:03
249
原创 HTTP请求和数据安全
>1开发中基本所有的请求都是HTTP请求,即时通信(IM)除外;>2最常用的HTTP请求:GET POST HEAD>3HTTP请求内容 客户端发送请求: 1>请求行:包括请求方法 资源路径 HTTP版本协议 2>请求头:请求头信息中包含服务器所需要的参数,大部分不需要手动设置 3>请求体:GET请求的参数拼接在
2016-04-28 20:49:10
511
原创 Jason和xml文件的解析
>1服务器给客户端返回的数据类型: 视频/音频/文件/图片(SDWebImage下载) HTML 看书类/商品详情页 直接使用UIWebView展示页面 UIWebView直接解析HTML/CSS/JS>2移动端和服务端的数据交互: 移动端:ios(OC/Swift) 安卓(java) 后端:java/php/.net 数
2016-04-28 20:47:26
1054
原创 用UIButton的类方法ButtonWithType创建时调用的是initWithFrame方法
最近模仿写了一下网易彩票的新特性界面,发现在用ButtonWithType方法时,需要重写自定义Button的initWithFrame方法,才能在界面上正常显示。下面是重写init方法:界面效果:重写initWithFrame方法:界面效果:
2016-04-10 00:32:57
1719
原创 UITableViewCell和UICollectionViewCell创建的三种方式及应用选择
UITabelView和UICollectionView是学习IOS基础知识时入门的两个类,它们都继承至UIScrollView,都可以用来处理出现重复单元的问题,因此将两者放在一块对比学习,能更深刻地理解这两个类。1 UITabelViewCell创建的三种方式:(1)自定义 [UITableViewCell alloc] initWithStyle:(UITableVie
2016-03-17 23:30:58
1745
原创 OC中的字符串(NSString)、字符串数组(NSArray)和字典(NSDictionary)
NSString字符串比较方法compare,返回值NSComparisionResult有3个枚举值:NSOrderedAscending(升序),NSOrderedSame(同样),NSOrderedDiscending(降序)。判断字符串内容是否相等的函数:isEqualToString。前后缀检查函数:hasPrefix,hasSuffix。字符串查找函数:rangeOfStrin
2015-12-05 16:44:42
2658
原创 OC基础-ARC和MRC的理解及应用
#import @interface NSString (countNum)-(int)count;@end#import "NSString+countNum.h"@implementation NSString (countNum)-(int)count{ NSUInteger NSLength = [self length]; int sum = 0;//定义
2015-11-26 19:49:16
699
原创 OC基础-内存管理
内存管理的概念:由于移动设备的内容极其有限,所以对其中无用的内存空间要进行及时回收,这称为内存管理。内存管理的范围:所有继承至NSObject的对象,其中基本数据类型由系统自动进行管理。内存管理的原理:当在栈区定义类的实例变量后,该变量就是该实例变量的一个所有者。实例化的类对象中有retainCount变量,称为对象的引用计数器。当引用计数器为0时,就会调用对象的deall
2015-11-22 15:28:05
381
原创 OC中类属性的封装方法和类的初始化
OC中用get和set方法设置的属性获取与设置方法可以通过点语法来调用,调用格式为:对象.对象变量比如声明一个类Person@interface Person:NSObject{int _age;} -(void)setAge:int age;//age属性的设置-(int)age;//age属性的获取@endPer
2015-11-14 15:26:00
1344
原创 OC入门-继承和多态
self关键字用在对象方法中,指代调用方法的对象;self用在类方法中,指代当前类;在类方法定义中,当形参名和实例变量名相同时,用self指代当前实例中的实例变量;继承概念:子类继承父类特性的现象就叫继承。实现方法:导入要继承的那个类的头文件;类声明时的格式:类名:父类名;优点:子类继承父类,不仅可以拥有父类中定义的变量和方法,而且可以定义属于自己的变量和方法,这样减少了类的接口;
2015-11-11 23:04:27
333
原创 OC中类的使用注意事项
1 类方法的定义格式:+(返回值类型)方法名:(形参类型)形参名;调用类方法的格式:[类名 方法名];使用类方法可以节省内存空间,提高效率。2 定义类方法时,需注意以下事项:类方法可以与对象方法重名;类方法可以从父类中继承,让后在子类中重写该方法;类方法和对象方法定义及实现方式相同;类方法中不能使用类中的成员变量;在类方法中可以调用其他类的方
2015-11-08 22:18:24
402
原创 OC基础语法
1 OC中类的声明和实现格式在OC入门中已经详细叙述过,当用类实例化对象时,关于对象在内存空间中存放的情况,下面以一个Person类的对象做个详细的说明。@interface Person:NSObject{NSString *_name;int _age;int _weight;}-(void)eatFood:(NSString *) food;@end@
2015-11-08 10:28:02
668
原创 OC-入门
C语言发展至今,显示了强大的生命力。在C语言的基础上,现如今有Objective-C、C#、C++等语言,其中Objective-C语言因为苹果公司IOS开发的应用而声名鹊起,一跃成为编程语言中的新宠儿。Objective-C语言简称0C或者Obj-C,是面向对象的语言。Objective-C语言与C语言相比,有的以下新的特点:1 文件名以.m结尾,向下兼容C语言;2 数据类型包括:
2015-11-03 21:01:22
469
原创 C语言-文件操作的函数
如果把C语言编写的程序在内存中运行的结果显示在控制台上,当程序执行结束时,内存中的数据会被清空,无法永久存储。所以C语言中定义了文件操作的函数,用来操作内存外部可以永久存储数据的介质(磁盘、闪盘等)。对于操作不同长度的数据类型,C语言中定义了不同的文件操作函数。1 读写一个字符的函数fputc()和fgetc();fputc()格式:fputc(字符,文件指针);fgetc()格式
2015-11-01 11:29:34
801
原创 C语言-#define宏定义
关于宏定义,在C语言中用通过关键字define编写,其是在程序编译前由系统处理,即预编译阶段。程序编译前会自动把程序中出现的宏名替换为宏内容。宏定义的格式如下:#define 宏名 宏内容由于宏定义式是预处理编译,不是语句,因此其后不能加“;”。宏定义分为两种:有参宏定义和无参宏定义。有参宏定义格式如下:#define 宏名(参数列表)宏内容其中宏名和参数之间不能有空格。宏定义
2015-10-29 22:38:54
666
原创 C语言-关键字typedef的使用
C语言中,可以用typedef关键字实现自定义类型,比如可以定义C语言中基本数据类型的整型int为INT,定义格式如下:typedef int INT;让后就可以在代码中使用INT来代替int。因此,对typedef的作用通俗的讲就是“起别名”。typedef关键字既可以修饰基本数据类型int shot long double char等,也可以修饰数组、指针等类型,关于typedef的详
2015-10-29 22:37:44
540
原创 C语言-结构体指针及结构体嵌套
C语言中结构体是一种构造类型,和数组、基本数据类型一样,可以定义指向该种类型的指针。结构体指针的定义类似其他基本数据类型的定义,格式如下struct 结构体名 * 指针名;比如:struct person{char[20] name; int age;};//先定义一个人的结构体struct person *p;//然后可以定义一个人的结构体指针struct person p1
2015-10-29 20:11:13
24724
原创 C语言-结构体的定义及使用
#include int main(int argc, char* argv[]){ //结构体数组的应用 struct student{ char name[20]; int score; } class[5] = { {"张三",59}, {"李四",60}, {"王五",80},
2015-10-26 22:02:21
3608
原创 C语言-函数指针和指针函数
C语言中指针为内存地址,可以指向变量,数组,同样也可以指向函数。指向函数的指针成为函数指针。函数指针指向被掉函数的首地址,可以通过它来调用函数。其定义方式为类型说明符 (*变量名)(形参列表);其中形参列表中可以省略形参名称。定义函数时需要说明函数的返回值类型,其可以是整型,字符型或者是指针等,当函数的返回值为指针时,该函数就称为指针函数。指针函数返回的是指针,及一个地址,其定义方式为:
2015-10-26 21:40:42
489
原创 C语言—常见的内存分配函数
用C语言编写的程序在内存中运行时,内存被分配为5个区:1堆区。动态分配内存区,即程序运行时被用户申请的空间,而非程序自身分配的内存;2栈区。用来存放程序运行时的局部变量;3ESS段。存放未被完全初始化的全局变量和静态变量。4数据区。存放完全初始化的全局变量和静态变量,字符串。5代码区。编译后的代码。当用户遇到需要临时申请内存空间时,可以使用内存分配函数malloc(),calloc
2015-10-26 20:59:31
827
原创 C语言—指针
计算机程序运行时,在内存中存在大量的存储空间,就像一栋酒店大楼可以让旅客用来住宿。不同的存储空间用地址来标示,恰若酒店大楼各个房间的门牌号。C语言中用指针来表示地址。通过指针来操作变量,具有很过优点:1 在被调函数中通过指针可以改变主调函数中的变量;2 在被调函数中可以有多个返回值;指针变量的修饰符为 * ,通过*可以定义一维指针和二维指针。一维指针的格式:类型说明符 * 变量名[数组
2015-10-24 23:58:38
454
原创 C语言-推箱子游戏代码
推箱子游戏的运行规则:在街道上上小人推动箱子移动,直到把箱子移动到目的地。思路分析:小人及箱子的移动就是小人或者箱子和路的交换;1 定义二维字符数组,存储地图2 显示地图,提示游戏玩法3 记录小人及箱子位置,并定义字符变量接收用户输入方向4 循环判断语句 1 小人的下一步是否为路,如果为路,则移动并记录小人新位置信息 2 小人的下一步如果不是路,在判断是否为
2015-10-24 23:50:17
9908
1
原创 C语言基础—字符串输入输出函数puts和gets
C语言中没有单独定义字符串的变量类型,而是采用字符数组的形式来定义及存储。字符串与字符数组一个很大的区别是字符串以字符‘\0’来结尾,因此采用for循环计算字符数组的长度时,常常会把字符‘\0’统计到结果当中。字符串处理函数strlen可以直接统计出字符串中不包含‘\0’的字符串长度,其存储在string.h文件中。string.h文件中还包括puts,gets等字符串处理函数。gets函
2015-10-21 22:23:15
6363
原创 C语言基础—实现两个变量交换的三种方法
C语言程序执行中,当定义了变量后,就相当于在内存中开辟了一部分的存储空间,不同空间存储的内容各异。在实际应用中,常常需要交换不同存储空间的内容,即变量内容的交换。用不同的思路,都能实现两个变量的交换。下面简单地介绍了三种实现方法:/*方法一 思路:1定义一个中间变量temp;2将变量x的值存储到temp中;3将变量y的值存储到x中;4将temp中的x的值存储到y中;优点
2015-10-16 21:04:50
6511
2
原创 C语言基础—函数的理解及应用
众所周知,C语言是面向过程的语言,也成为函数语言。因此,函数是C语言的基础。按照函数定义方式的不同,可以分为库函数(C语言自带的函数库,如stdio.h、stdlib.h等)和自定义函数(由用户定义)。自定义函数又可以按照有无返回值分为有返回值函数和无返回值函数,按照形式参数个数分为有参函数和无参函数。1 函数定义的基本格式是:返回值类型 函数名(形参列表){函数体}。1)返回值类
2015-10-09 21:51:25
736
原创 C语言基础-几个简单图形的打印
关于C语言的入门学习记录如下:现已经历过几个步骤:从简单的了解操作平台Xcode开始,到熟悉基本的数据类型:整型:int、long、short;字符型:char;实型:float、double。然后接触到编程语言的分支结构分类——顺序、分支、循环。其中循环是重点内容,对个人的逻辑分析以及程序执行顺序的理解都要求较高。大家都懂得:有学无习难以提高能力。软件编程更是如此,听十遍,想十遍,不如动手练
2015-10-07 22:09:35
6421
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人