Object
文章平均质量分 67
Cui_Ankly
iOS软件开发
展开
-
UITableView总结
1.协议介绍 UITableViewDataSource(11) UITableViewDelegate(常用) 2.刷新 下拉刷新: 上拉刷新 3.搜索 4.重用 自定义cell 不使用重用方法 注册Cell 5.编辑 滑动更多 6.优化 UITableView 总结UITableView是UIScrollView的子类,因此它可以自动响应滚动事件(一般为上下滚动)。原创 2016-04-26 13:39:25 · 427 阅读 · 0 评论 -
关于ios的性能优化
用ARC管理内存ARC(Automatic ReferenceCounting, 自动引用计数)和iOS5一起发布,它避免了最常见的也就是经常是由于我们忘记释放内存所造成的内存泄露。它自动为你管理retain和release的过程,所以你就不必去手动干预了。忘掉代码段结尾的release简直像记得吃饭一样简单。而ARC会自动在底层为你做这些工作。除了帮你避免内存泄露,ARC还可以帮你提高性能,它能原创 2016-08-29 18:49:04 · 386 阅读 · 0 评论 -
MJRefresh的使用
MJRefresh框架与UIScrollView、UITableView、UICollectionView、UIWebView完美结合 cocoapods导入:pod ‘MJRefresh’ 手动导入: 将MJRefresh文件夹中的所有文件拽入项目中 导入主头文件:#import “MJRefresh.h” Base原创 2016-08-29 19:00:05 · 625 阅读 · 0 评论 -
栈区,堆区,全局区,文字常量区,程序代码区 详解
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两回事,分配方式倒是类似原创 2016-08-10 19:13:13 · 424 阅读 · 0 评论 -
IOS MJRefresh给tableview下拉刷新上拉加载分页
(void)viewDidLoad{[super viewDidLoad];//获取数据[self firstLoadRefresData];//下拉刷新self.refreshControl = [[UIRefreshControl alloc]init];self.refreshControl.tintColor=[UIColor blueColor];[self.refreshControl原创 2016-09-06 20:27:29 · 3980 阅读 · 0 评论 -
iOS - 保存自定义对象(姓名,性别.....)
我是将聊天记录存到本地,里边用到了自定义的对象,把数据转成Data格式存到本地,在转Data格式的时候报错了,这时候需要先将自定义对象进行归档才可以转Data格式。方法如下:一、在.h文件中声明协议#import <Foundation/fountion.h>@interface Person : NSObject <NSCoding>@property (nonatomic,copy) NSSt原创 2016-09-06 20:46:43 · 921 阅读 · 0 评论 -
iOS- 延迟1秒执行一个函数
本文列举了四种延时执行某函数的方法及其一些区别。 假如延时1秒时间执行下面的方法。 - (void)delayMethod { NSLog(@”execute”); } 1.performSelector方法[self performSelector:@selector(delayMethod) withObject:nil afterDelay:1.0f]; 此方式要求必须在主线程中执行,原创 2016-09-06 20:50:07 · 10802 阅读 · 0 评论 -
Container View Controller
一.UIViewController 做iOS开发的经常会和UIViewController打交道,从类名可知UIViewController属于MVC模型中的C(Controller),说的更具体点它是一个视图控制器,管理着一个视图(view)。 UIViewController的view是lazy loading的,当你访问其view属性的时候,view会从xib文件载入或者通过代码创建(覆原创 2016-09-07 00:28:44 · 344 阅读 · 0 评论 -
IOS UIAlertController 弹框 (ios 9.0 后代替了UIAlertView弹框 和 UIActionSheet下弹框)
在IOS 9.0 后 苹果官方宣布不再或不推荐使用UIAlertView 和 UIActionSheet 由UIAlertController进行代替两者 用控制器将两者合二为一 很简单 方便 下面就是关于UIAlertView的常用方法一)新旧对比: 标准的Alert样式: 旧方法:UIAlertView:UIAlertView *alertView = [[UIAlertView all原创 2016-10-24 17:05:45 · 571 阅读 · 0 评论 -
iOS ---GCD 总结篇章
对初学者来说,GCD似乎是一道迈不过去的坎,很多人在同步、异步、串行、并行和死锁这几个名词的漩涡中渐渐放弃治疗。本文将使用图文表并茂的方式给大家形象地解释其中的原理和规律。 首先:什么是多线程? 1个进程中可以开启多条线程,每条线程可以并行(同时)执行不同的任务 比如:进程 ->车间,线程->车间工人 多线程技术可以提高程序的执行效率 比如同时开启3条线程分别下载3个文件(分别是文件A、文原创 2017-03-23 08:08:42 · 405 阅读 · 1 评论 -
IOS 本地和远程推送通知详解
这里主要详细介绍苹果的远程推送服务,在本文后会有本地通知的简单示例。 一,IOS远程通知服务APNs 苹果的APNs(苹果推送通知服务Apple Push Notification server)允许设备和苹果的推送通知服务器保持链接,支持开发者推送消息到给用户设备对应的应用程序。 苹果的APNs基本原理是: 首先由应用注册远程通知。注册成功之后APNs会返回一个唯一标示的设备令牌码devi原创 2016-07-22 09:47:24 · 1655 阅读 · 0 评论 -
自动释放池什么时候创建,什么时候销毁?
自动释放池什么时候创建,什么时候销毁? 运行循环结束前会释放自动释放池,还有就是池子满了,也会销毁。 面试题 下面代码存在内存问题么?如果存在如何解决?为什么-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { int lagerNum = 1024 * 1024 * 2 ; for(int i原创 2016-07-26 19:57:07 · 1474 阅读 · 0 评论 -
iOS 运行时应用
一、什么是运行时(Runtime)?运行时是苹果提供的纯C语言的开发库(运行时是开发中经常用到的底层技术) 二、运行时的作用?能获得某个类的所有成员变量 能获得某个类的所有属性 能获得某个类的所有方法 交换方法实现 能动态添加一个成员变量 能动态添加一个属性 能动态添加一个方法 三、案例:运行时获取成员变量名称1、分析#import <Foundation/Foundation.h原创 2016-07-02 10:57:05 · 3581 阅读 · 0 评论 -
iOS 推送通知
iOS 推送通知:注意:通知是一个应用程序级别的操作UIApplication推送通知 与 NSNotification 区别NSNotification是抽象的,不可见的推送通知是可见的iOS中提供了2种推送通知本地推送通知(Local Notification)远程推送通知(Remote Notificat原创 2016-04-19 12:48:16 · 564 阅读 · 0 评论 -
仿微信联系人分组(右侧索引)
1,创建模型:用来保存数据创建模型:用来保存数据模型.h文件@interface CKUser : NSObject//重写构造方法-(instancetype)initWith:(NSString*)username name:(NSString*)name;/* * 名字 */@property (assign,r原创 2016-04-19 13:17:04 · 2037 阅读 · 0 评论 -
iOS 远程推送通知
iOS 推送通知:注意:通知是一个应用程序级别的操作UIApplication 推送通知 与 NSNotification 区别 NSNotification是抽象的,不可见的 推送通知是可见的iOS中提供了2种推送通知 本地推送通知(Local Notification) 远程推送通知(Remote Notification)推送通知的作用: 可以让不在前台运行的app,告知用户app内原创 2016-04-22 12:42:03 · 538 阅读 · 0 评论 -
iOS 运行时
一、什么是运行时(Runtime)?运行时是苹果提供的纯C语言的开发库(运行时是开发中经常用到的底层技术)二、运行时的作用?能获得某个类的所有成员变量能获得某个类的所有属性能获得某个类的所有方法交换方法实现能动态添加一个成员变量能动态添加一个属性能动态添加一个方法三、案例:运行时获取成员变量名称1、分析#import #import "CKPerson.h"原创 2016-04-22 11:02:01 · 1200 阅读 · 0 评论 -
iOS单元测试
由于只是一些简单实用的东西,学学还是挺不错的。其实单元测试用的好,开发起来也会快很多。单元测试对于我目前来说,就是为了方便测试一些功能是否正常运行,还有调试接口是否能正常使用。有时候你可能是为了测试某一个网络接口,然后每次都重新启动并且经过很多操作之后才测试到了那个网络接口。如果使用了单元测试,就可以直接测试那个方法,相对方便很多。 比如由于修改较多,我们想测试一下分享功能是否正常,这时候就有用了原创 2016-04-19 19:52:40 · 1705 阅读 · 0 评论 -
iOS - 定时器
1、初始化+ (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)yesOrNo;+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInt原创 2016-05-07 12:46:55 · 1518 阅读 · 0 评论 -
AFN应用及原理
AFN框架 注意事项 AFN的请求默认的发送的是二进制, AFN的响应默认的接收的是JSON 1 AFN内部结构 AFN结构体 - NSURLConnection(iOS9.0废弃了) + AFURLConnectionOperation + AFHTTPRequestOperation + AFHTTPRequestOper原创 2016-04-22 18:30:40 · 1342 阅读 · 0 评论 -
iOS --KVO
KVO,即:Key-Value Observing, 它提供一种机制,当指定的对象的属性被修改后,则对象就会接受到通知。简单的说就是每次指定的被观察的对象的属性被修改后,KVO就会自动通知相应的观察者了. 与NSNotification 不同的是。KVO 不需要通知中心对象。而是在对象属性变化之后会直接通知观察者。KVO是基于KVC的。 KVO是一个对象能够观察另外一个对象的属性的值,并且能够原创 2016-04-22 17:52:11 · 514 阅读 · 0 评论 -
objc runtime 动态增加属性
objective-c中,有类别可以在不修改源码的基础上增加方法;近排在看别人的开源代码时,发现还可以动态增加属性。而且是在运行时使用运行时库,必须要先引入 objc/runtime.h可以使用的函数如下:OBJC_EXPORT void objc_setAssociatedObject(id object, const void *key, id value, objc_AssociationPo原创 2016-07-02 10:48:03 · 369 阅读 · 0 评论 -
不可变数组NSArray与可变数组NSMutableArray
不可变数组NSArray//创建一个空数组NSArray *array = [NSArray array];//这样创建是没有意义的.//创建只有一个元素的数组NSArray *array1 = [NSArray arrayWithArray:@"a"];NSArray *array2 = [NSArray arrayWithObject:@"b"];//使用便利构造器创建有多个元素数组N原创 2017-04-18 09:36:53 · 400 阅读 · 0 评论