Block的本质是什么?
block对象就是一个结构体,里面有isa指针指向自己的类(global malloc stack),有desc结构体描述block的信息,forwarding指向自己或堆上自己的地址,如果block对象截获变量,这些变量也会出现在block结构体中。最重要的block结构体有一个函数指针,指向block代码块。block结构体的构造函数的参数,包括函数指针,描述block的结构体,自动截获的变量...【详细】
ios block
2017年03月14日 赞:1 评论:0 阅读:1064
如何在项目中进行配置,使自己的项目支持HTTPS
苹果公司强制所有iOS App在2017年1月1日前使用HTTPS加密,这就意味着,如果您的APP如果仍采用HTTP传输,那么,在Apple Store中您的APP将不再能被用户下载使用。 HTTPS的基础原理和通信过程 HTTPS(Secure Hypertext Transfer Protocol) 安全超文本传输协议 它是一个安全通信通道,它基于 HTTP 开发,用于在客户计算机和服务器之间交换信息。它使用安全套接字...【详细】
ios HTTPS
2017年03月14日 赞:0 评论:0 阅读:960
项目格式(如何给自己的方法起名及分类)
如何梳理自己的项目,是别人看上去能一眼看出先后顺序,能够一步步直接读方法名就理解方法的含义。真正好的注释,就是不需要注释。以下附上项目的方法浏览。 【详细】
ios 项目格式
2017年03月14日 赞:0 评论:0 阅读:755
项目中的图片最好是不透明的
如果你有透明的Views你应该设置它们的opaque(不透明)属性为YES。例如一个黑色半透明的可以设置为一个灰色不透明的View替代.原因是这会使系统用一个最优的方式渲染这些views。这个简单的属性在IB或者代码里都可以设定。 Apple的文档对于为图片设置透明属性的描述是: (opaque)这个属性给渲染系统提供了一个如何处理这个view的提示。如果设为...【详细】
ios 性能 图片不透明
2017年03月14日 赞:0 评论:0 阅读:802
知乎状态栏滚动效果
`- 1. - _ 项目中要实现知乎三个状态栏类似的效果,网上搜了一片并没有找到合适的,只能自己写了。 主要思想是利用tableView的contentInset和contentOffset,判断向上滑动时,headerview收起,tableview顶部至headerview,向下滑动时headerview展开,tableview顶部至headerView。 注意:tableView一定要在headerView的底层,不然就会盖住headerView,显示不出来。 (void)...【详细】
ios scrollView 滚动
2017年03月14日 赞:0 评论:0 阅读:912
iOS返回当前类的所有属性
扩展NSArray分类 @implementation NSArray (Extension) //返回当前类的所有属性 (instancetype)getProperties:(Class)cls {// 获取当前类的所有属性 unsigned int count;// 记录属性个数 objc_property_t *properties = class_copyPropertyList(cls, &count); // 遍历 NSMutableArray *mArray = [NSMutableArray array]; for (int i = 0; i < count; i++) { // An opaque type that represents an Objective-C declared property. // objc_...【详细】
ios 类属性
2017年03月14日 赞:0 评论:0 阅读:981
iOS图片设置圆角性能问题
一般我们在iOS开发的过程中设置圆角都是如下这样设置的。 avatarImageView.clipsToBounds = YES; [avatarImageView.layer setCornerRadius:50]; 这样设置会触发离屏渲染,比较消耗性能。比如当一个页面上有十几头像这样设置了圆角 会明显感觉到卡顿。 注意:png图片UIImageView处理圆角是不会产生离屏渲染的。(ios9.0之后不会离屏渲染,ios9.0之前还是会离屏渲染...【详细】
ios 圆角 性能
2017年03月14日 赞:0 评论:0 阅读:939
iOS .(点语法)和_(下划线)的使用原则
总的原则: 在类内部访问变量的时候用“_”; 在类外部也就是其他类里访问这个类的变量时用“.” 语法; 注意事项: 手动管理内存的情况下: 使用"."语法来初始化变量的时候,会产生内存泄漏的问题: self.nameArray = [[NSMutableArray alloc]init]; 上述代码,造成的问题是,在self.nameArray的时候相当于调用了set方法,引用计数+1,后面alloc的...【详细】
ios 点语法 下划线
2017年03月14日 赞:0 评论:0 阅读:1000
为什么NSMutableArray用copy修饰会crash?
在网上经常看到这样的温馨提示,创建NSArray 属性时要用copy关键词,而创建NSMutableArray的属性时要使用strong修饰。开始时不大理解,表示自己在项目里NSArray用的也是strong... 先做一片总结归纳,仅作为以后忘记了查看使用 废话不多说,先上代码 @interface ViewController() @property(nonatomic,copy)NSMutableArray*arr1; @end @implementation ViewController (void)viewDidLoa...【详细】
ios crash copy NSMutableArray
2017年03月14日 赞:0 评论:0 阅读:1205
Get和Post的区别
GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。 最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。 当你在面试中被问到这个问题,你的内心充满了自信和喜悦。 你轻轻松松的给出了一个“标准答案”: GET在浏览器回退时是无害的,而POST会再次提交请求。 GET产生的URL地址可以被...【详细】
ios get post
2017年03月14日 赞:0 评论:0 阅读:924
iOS防止键盘无限输入
接到一个需求:评论输入框控制用户只能输入200个字。于是在 (BOOL)textView:(UITextView)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString)text { 添加如下代码 NSString* toBeString = [textView.textstringByReplacingCharactersInRange:rangewithString:text]; if(toBeString.length>self.maxTextInputNum) { returnNO; } 可是这样的话,可以在输入中文的时候无限点击提示,于是各种...【详细】
ios 键盘无限输入
2017年03月14日 赞:0 评论:0 阅读:963
objc_msgSend方法调用流程
这个方法做的事情不少,举个栗子: [self printMessageWithString:@"Hello World!"]; 这句语句被编译成这样: objc_msgSend(self,@selector(printMessageWithString:),@"Hello World!"); 这个方法先去查找 self 这个对象或者其父类是否响应 @selector(printMessageWithString:),如果从这个类的方法分发表或者 cache 里面找到了,就调用它对应的函数指针。如果找不到,...【详细】
ios obc_msgSend
2017年03月14日 赞:0 评论:0 阅读:825
iOS如何添加本地通知
添加本地通知需要进入项目的project->Capabilities把Push Notifications打开,并添加以下方法, 注意ios8后,需要添加注册,才能得到授权 // 设置本地通知 -(void)registerLocalNotificationWithTime:(NSTimeInterval)startTime notifiTitle:(NSString )title notifiText:(NSString )text key:(NSString *)key { //避免重复添加 [self cancelLocalNotificationWithKey:key]; if (startTime <= 0)//返回的时间点...【详细】
ios localpush
2017年03月14日 赞:0 评论:0 阅读:1127
static和const的用途,const与define的区别
一.Static的作用详述 摘要:C语言中,static的字面意思很容易把我们导入歧途。本文将对C/C++中Static进行详述。 1.先来介绍它的第一条也是最重要的一条:隐藏。 当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c. 下面...【详细】
ios static const define
2017年03月14日 赞:0 评论:0 阅读:994
Const(常量)与define(宏定义)的区别
`#define RADIUS 100; const float RADIUS = 100;` (1) 编译器处理方式不同   define宏是在预处理阶段展开。   const常量是编译运行阶段使用。 (2) 类型和安全检查不同   define宏没有类型,不做任何类型检查,仅仅是展开。   const常量有具体的类型,在编译阶段会执行类型检查。 (3) 存储方式不同   define宏仅仅是展开,有多少地方使用,就展开...【详细】
ios const define
2017年03月14日 赞:0 评论:0 阅读:768
iOS离屏渲染
GPU渲染机制: CPU 计算好显示内容提交到 GPU,GPU 渲染完成后将渲染结果放入帧缓冲区,随后视频控制器会按照 VSync 信号逐行读取帧缓冲区的数据,经过可能的数模转换传递给显示器显示。 GPU屏幕渲染有以下两种方式: On-Screen Rendering 意为当前屏幕渲染,指的是GPU的渲染操作是在当前用于显示的屏幕缓冲区中进行。 Off-Screen Rendering 意为离...【详细】
ios 离屏渲染
2017年03月14日 赞:0 评论:0 阅读:1031
代理和block区别及其对应优缺点
block 和 delegate 都可以通知外面。block 更轻型,使用更简单,能够直接访问上下文,这样类中不需要存储临时数据,使用 block 的代码通常会在同一个地方,这样读代码也连贯。delegate 更重一些,需要实现接口,它的方法分离开来,很多时候需要存储一些临时数据,另外相关的代码会被分离到各处,没有 block 好读。 应该优先使用 block。而有...【详细】
代理 block
2017年03月14日 赞:1 评论:0 阅读:621
共17个 共1页
sina weixin mail 回到顶部