
iOS
文章平均质量分 73
皆为序幕
这个作者很懒,什么都没留下…
展开
-
iOS中九宫格布局
二分法查找当数据量很大适宜采用该方法。采用二分法查找时,数据需是排好序的。主要思想是:(设查找的数组区间为array[low, high]) (1)确定该区间的中间位置K (2)将查找的值T与array[k]比较。若相等,查找成功返回此位置;否则确定新的查找区域,继续二分查找。区域确定如下:a.array[k]>T 由数组的有序性可知array[k,k+1,……,high]>T;故新的区间原创 2018-10-25 16:32:45 · 1888 阅读 · 0 评论 -
iOS中的NSArray和NSMutableArray
数组的创建 NSArray *arr = [NSArray arrayWithObjects:@"a",@"b",@"c",nil]; NSArray *arr1 = [[NSArray alloc ]initWithObjects:@"a",@"b",@"c",nil]; NSArray *arr2 = @[@"a",@"原创 2017-05-30 22:08:41 · 317 阅读 · 0 评论 -
iOS中的NSDictionary和NSMutableDictionary
字典的创建NSDictionary *dic = [NSDictionary dictionaryWithObject:@"abc" forKey:@"ABC"]; NSDictionary *dic1 = [NSDictionary dictionaryWithObjectsAndKeys:@"abc",@"ABC",@"abcde",@"ABCDE", nil];原创 2017-05-30 22:41:48 · 238 阅读 · 0 评论 -
iOS中的NSNumber与NSValue
NSValue包装常用结构体 CGPoint point = NSMakePoint(10, 20); NSValue *value = [NSValue valueWithPoint:point]; NSLog(@"%@",value);NSValue包装自定义结构体 typedef struct{ int age; char *name;原创 2017-05-30 23:42:23 · 219 阅读 · 0 评论 -
iOS中的NSDate、NSCalendar
Date的创建 //Date的创建(当前系统时间) NSDate *currentTime = [NSDate date]; NSLog(@"%@",currentTime);Date相关的方法//在当前时间上追加10s NSLog(@"%@",[currentTime dateByAddingTimeInterval:10]); //获取当前系统时区 NSTi原创 2017-05-31 00:18:09 · 531 阅读 · 0 评论 -
iOS中的copy及其用法
copy的概念特点copy产生一个新副本的过程 copy:创建一个不可变的副本(NSString;NSArray;NSDictionary;)mutableCopy :创建一个可变的副本 (NSMutableDictionary; NSMutableArray;NSMutableString)修改新文件,不会影响原文件修改原文件,不会影响新文件copy的实现必须遵守NSC原创 2017-06-01 19:17:25 · 912 阅读 · 0 评论 -
iOS中的NSString与NSMutableString
NSString *a = @"abce"; NSString *b = @"abcd"; //比较俩个字符串的内容 BOOL flag = [a isEqualToString:b]; NSLog(@"%i",flag); //比较俩个字符串的地址 BOOL flag1 = a == b; NSLog(@"%p--%p&q原创 2017-05-30 10:47:04 · 233 阅读 · 0 评论 -
单例设计模式
单例模式(singleton)1、类的对象成为系统中唯一的实例 2、类只能有一个实例,而且必须从一个为人熟知的访问点对其进行访问,比如工厂方法 3、这个唯一的实例只能通过子类进行扩展,而且扩展的对象不会破坏客户端代码@interface Student : NSObject<NSCopying,NSMutableCopying>/* 一般情况下创建一个单例对象都有一...原创 2017-06-01 22:24:46 · 204 阅读 · 0 评论 -
iOS 画图(矩形、圆、椭圆、弧度、扇形。。。)
矩形 //cornerRadius:圆角半径(绘制矩形的左上角开始,也就是0,5) UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(10, 10, 50, 50) cornerRadius:5]; [path stroke];圆//cornerRadius:圆角半径,如果圆角半径等于正方形长或宽的一半原创 2017-06-10 10:39:59 · 10191 阅读 · 0 评论 -
iOS的内存管理
字符串的创建通过字符串常量创建,字符串对象存储在常量区 NSString *str = @"AA";如果通过allocinitWithFormat、stringWithFormat创建,字符串对象存储在堆区 NSString *str1 = [[NSString alloc]initWithFormat:@"BB"]; NSString *str2 = [NSString原创 2017-05-30 10:27:50 · 283 阅读 · 0 评论 -
iOS中的Block
字符串存储通过文件路径存取文件/* file:文件路径 encoding:编码方式,一般是utf-8 error:如果读取错误,错误信息将保存在error中,如果读取正确,error为nil 注意:OC中,凡是XXfile的方法,传递的一般都是全路径(绝对路径) */ NSString *path = @"/Users/use原创 2017-05-30 10:11:31 · 402 阅读 · 0 评论 -
关于UITableViewCell的重用
整理印象笔记之UITableViewCell的重用第一种:- (UITableViewCell *)tableView:(nonnull UITableView *)tableView cellForRowAtIndexPath:(nonnull NSIndexPath *)indexPath { //注册重用标识 static NSString *cellID = @"cell";原创 2017-11-17 09:57:20 · 330 阅读 · 0 评论 -
应用程序启动原理
int main(int argc, char * argv[]) { @autoreleasepool { return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); }}1、在mian函数中创建UIApplication对象 2、创建UIDelegate对原创 2017-11-27 22:50:41 · 435 阅读 · 0 评论 -
代理设计模式
1、什么是Block - Block是一种特殊的数据类型 2、Block的作用 - 用于保存一段代码。可以在恰当的时间取出来调用 - 功能类似于函数和方法 3、Block的格式 返回值类型原创 2017-05-24 10:49:46 · 393 阅读 · 0 评论 -
关于storyboard和xib
Xib和storyboard对比共同点 都用来描述软件界面都用interface builder工具来编辑本质都是转换成代码去创建控件不同点 xib是轻量级的,用来描述局部UI界面Storyboard是重量级的,用来描述整个软件的多个界面,并且能够展示多个界面的跳转关系加载xib文件xib文件在编译的后会变成nib文件第一种加载xib方式 N...原创 2017-11-27 22:59:21 · 439 阅读 · 0 评论 -
iOS中的RunLoop
iOS中的RunLoop什么是RunLoop从字面上理解就是一个运行循环,我们一般程序就是执行一个线程,是一条直线.有起点终点.而runloop就是一直在线程上面画圆圈,一直在跑圈,在不断跑圈中,一直在检测一些点击事件、定时器等等,一旦检测到就开始执行,执行结束后再睡眠,睡眠中再检测,除非切断否则一直在运行,否则就一直在循环。其内部的结构是一个do-while循环,在这个循环内部不断处理各种任...原创 2018-09-19 10:59:59 · 389 阅读 · 0 评论 -
iOS中的runtime
iOS中的Runtime引言**对于C语言,函数调用在编译的时候会决定调用哪个函数,编译完成之后直接顺序执行 **对于OC语言, 属于动态函数调用,在编译的时候并不能决定真正调用哪个函数,只有在真正运行的时候才会根据函数的名称找到对应的函数来调用事实证明:在编译阶段,OC可以调用任何函数,即使这个函数并未实现,只要声明过就不会报错。而C语言在编译阶段就会报错Runtime简介Run...原创 2018-09-19 10:56:51 · 827 阅读 · 0 评论 -
iOS中的多线程
多线程的一些相关概念什么是进程在系统中正在运行的一个应用程序。每个进程之间是独立的,每个进程均运行在其专用而且受保护的内存空间内。什么是线程一个进程要想执行任务,必须得有一个线程,而且每一个进程中至少有一个线程进程的所有任务都在线程中执行什么是线程的串行一个线程中的任务都是串行执行的如果要在一个线程中执行多个任务,那么只能一个一个按顺序来执行这些任务同一时间内,一个线...原创 2018-09-19 10:54:53 · 4492 阅读 · 0 评论 -
iOS的SEL类型
一个由C/C++编译的程序占用的内存分为以下几个部分1、栈区(stack):由编译器自动分配、释放,存放函数的参数值、局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap):一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表 3、全局区(静态区)(static): 全局变量和静态变量的存储是放在一块的,程序结束后原创 2017-05-07 20:56:46 · 388 阅读 · 0 评论 -
简单的了解HTTPS
关于HTTP的不足通信使用明文不加密,内容可能被窃听由于HTTP本身不具备加密功能,所以无法做到对通信整体(HTTP协议通信请求和响应内容)加密,很容易被获取为了防止被窃听,普遍做法是加密 通信加密:HTTP协议中没有加密机制,但可以通过和SSL(安全套接字)或TSL(安全传输协议)的组合使用,加密HTTP的通信内容,与SSL组合使用的HTTP被称为HTTPS内容加密:HTTP协议...原创 2018-07-06 10:55:52 · 268 阅读 · 0 评论 -
iOS中的网络编程-AFNetworking(四)
全称是 AFNetworking, 是对NSURLSession的一层封装在iOS中,请求网络 就用 AFN. AFNetworking到底做了什么(一)https://www.jianshu.com/p/856f0e26279dAFNetworking到底做了什么(二)https://www.jianshu.com/p/f32bd79233da...原创 2018-06-28 15:07:06 · 181 阅读 · 0 评论 -
iOS中的网络编程-NSURLConnection简单使用(二)
HTTP请求的方案NSURLConnection:用法简单,(坑比较多)NSURLSession:功能比NSURLConnection强大,苹果目前比较推荐CFNetwork :苹果底层,纯C语言ASIHTTPRequest:功能强大,已停止更新AFNetworking:简单易用,三方库中比较主流NSURLConnection基本类 NSURL:请求地址NSURLRe...原创 2018-06-20 16:33:57 · 360 阅读 · 0 评论 -
iOS中的网络编程-NSURLSession简单使用(三)
NSURLSession(iOS7)使用NSURLSession对象创建Task,然后执行TaskTask的类型原创 2018-06-26 15:09:51 · 491 阅读 · 0 评论 -
iOS中的网络编程基础(一)
基本概念客户端:移动应用(iOS、android等) 服务器:为客户端提供服务、提供数据、提供资源的机器 请求:客户端向服务器索取数据的一种行为 响应:服务器对客户端的请求做出的反应,一般指返回数据给客户端URL(Uniform Resource Locator)通过一个URL,能找到互联网唯一的一个资源URL就是资源地址、位置,互联网上每一个资源都有唯一的URL格式:...原创 2018-06-19 16:05:19 · 577 阅读 · 0 评论 -
iOS中的NSFileManager
NSFileManagerNSFileManager是用来管理文件系统管理的它可以用来操作常见文件夹获取NSFileManagerNSFileManager *file = [NSFileManager defaultManager];NSFileManager常用方法 NSFileManager *file = [NSFileManager defaultManager];原创 2017-05-31 14:10:23 · 356 阅读 · 0 评论 -
iOS中的懒加载
懒加载:通俗一点就是用到时再加载,而且只加载一次,其实就是所谓的重写对象的get方法,当系统或者开发者调用对象的get方法时,再去加载对象。需要注意:重写get方法时,先判断对象当前是否为空,为空的话再去实例化对象使用懒加载的好处:不必将创建对象的代码全部写在viewDidLoad方法中,代码的可读性更强每个控件的getter方法中分别负责各自的实例化处理,代码彼此之间的独立性强,松耦合对原创 2017-06-09 15:21:20 · 1951 阅读 · 0 评论 -
iOS .h文件.m文件中的@interface
在.h文件中#import <Foundation/Foundation.h>@interface Demo : NSObject@end在.m文件中#import "Demo.h"@interface Demo() @end@implementation Demo@end1、写在.h文件中的@interface是公共的头文件,可以被任何类调用它的属性及其方法 2、写在.m文件中的@interf原创 2017-06-14 15:09:30 · 633 阅读 · 0 评论 -
iOS中的多态
只要程序启动就会将所有类的代码加载到内存中,放在代码区load方法会在当前类被加载到内存的时候调用,有且仅会调用一次 如果存在继承关系,会先调用父类的load方法,在调用子类的load方法+(void)load{ NSLog(@"类被加载到内存");}当当前类第一次被使用的时候就会被调用(创建类的对象的时候)initialize方法在整个程序的运行过程中只会被调用一次,无论你使用原创 2017-05-12 16:50:47 · 378 阅读 · 0 评论 -
关于GCD的定时器
@interface ViewController ()@property(nonatomic,strong)dispatch_source_t timer;@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; //创建队列(全局并发队列) dispatch_qu...原创 2018-04-10 17:07:56 · 795 阅读 · 0 评论 -
UINavigationBar
UINavigationBar原创 2018-05-08 21:41:59 · 321 阅读 · 0 评论 -
关于动画CALayer
关于CALayer在iOS中,UIView之所以能显示在屏幕上,完全是因为它内部的一个图层在创建UIView对象时,UIView内部会自动创建一个图层(即CALayer对象),通过UIView的layer属性可以访问到这个层当UIView需要显示到屏幕上时,会调用drawRect:方法进行绘图,并且会将所有内容绘制在自己的图层上,绘图完毕后,系统会将图层拷贝到屏幕上,于是就完成了UIView的原创 2017-12-26 16:24:12 · 181 阅读 · 0 评论 -
常见手势使用
常用的有以下几种敲击UITapGestureRecognizer捏合(一般用于缩放)UIPinchGestureRecognizer拖拽UIPanGestureRecognizer轻扫UISwipeGestureRecognizer旋转UIRotationGestureRecognizer长按UILongPressGestureRecognizer- (void)addTap{原创 2017-12-18 17:12:20 · 415 阅读 · 0 评论 -
iOS中的常见事件及其响应
iOS中的事件在使用app过程中,会产生各种各样的事件 可以分为三大类 响应者对象iOS中只有继承了UIResponder才能接收并处理事件,称为响应者对象UIApplication、UIViewController、UIView都继承UIResponder。所以他们都是响应者对象,都能接收并处理事件UIResponder内部提供一些方法触摸事件注:如果处理UIView的触摸事件,必原创 2017-12-14 13:41:52 · 1473 阅读 · 0 评论 -
UIStoryboardSegue
整理印象笔记之 UIStoryboardSegue的连接方式UIStoryboardSegue在Storyboard中,用来描述界面跳转的线,都是一个UIStoryboardSegue对象(简称:Segue) Segue的属性唯一标识(identifier)来源控制器(sourceViewController)目标控制器(destinationViewController)原创 2017-12-06 09:04:35 · 259 阅读 · 0 评论 -
关于图片拉伸的方法
整理印象笔记之 关于图片拉伸的方法UIImageView *imageV = [[UIImageView alloc]init];[imageV setBackgroundColor:[UIColor redColor]];[imageV setFrame:CGRectMake(20, 50, 300, 300)];UIImage *image = [UIImage imageNamed:@原创 2017-11-24 15:19:16 · 383 阅读 · 0 评论 -
KVC
整理印象笔记之Xcode 只KVCKVC:key value coding 常见作用:字典转模型(给模型属性赋值)其原理: 遍历字典里所有的key 比如: key是name 1、在模型中查找有没有setName方法,若有直接调用生对象的setName方法赋值 2、如果没有setName方法,就会在模型中查找有木有_name属性,_name = value 3、如果没有_name,还会在模原创 2017-11-24 15:16:32 · 180 阅读 · 0 评论 -
UITableViewCell编辑效果
一般在tableViewcell编辑时,效果是这样的 在iOS8以后,效果可以是这样的 其实现是,在iOS8中,有一个新的方法:- (NSArray *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath{ UITableViewRowAction *action原创 2017-12-11 09:27:20 · 202 阅读 · 0 评论 -
iOS应用数据存储的常用方式
XML属性列表(plist)归档NSUserDefaults(偏好设置)NSKeyedArchiver归档(NSCoding)Core DataSQLite3应用沙盒每个iOS的APP都有自己的应用沙盒(应用沙盒就是文件系统目录),与其他文件系统隔离,应用必须待在自己的沙盒里,其他应用是访问不了该沙盒应用沙盒的文件系统目录,应用程序包:Documents:保存应用运行时生成的需要持久化的原创 2017-12-07 17:29:22 · 413 阅读 · 0 评论 -
关于Masonry一些常用方法
Masonry目前比较流行的Autolayout第三方库其内部封装了苹果Autolayout代码提高了开发效率安装安装地址:https://github.com/SnapKit/Masonry常用方法 UIView *testView = [[UIView alloc]init]; testView.backgroundColor = [UIColor redColor];原创 2017-11-13 14:06:06 · 399 阅读 · 0 评论 -
静态类型、动态类型、id、instancetype
iOS中的Runtime引言对于C语言,函数调用在编译的时候会决定调用哪个函数,编译完成之后直接顺序执行 对于OC语言, 属于动态函数调用,在编译的时候并不能决定真正调用哪个函数,只有在真正运行的时候才会根据函数的名称找到对应的函数来调用事实证明:在编译阶段,OC可以调用任何函数,即使这个函数并未实现,只要声明过就不会报错。而C语言在编译阶段就会报错Runtime简介Runtime简称运行时原创 2017-03-24 15:23:08 · 473 阅读 · 0 评论