自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 Ios 内存管理

文章目录内存管理整理1.为什么使用内存管理2.OC的内存管理主要有三种方式3.OC中内存管理的基本思想4.管理规则5.自动内存管理(ARC)6.自动释放池7.相关面试题内存管理整理1.为什么使用内存管理严格的内存管理,能够使我们的应用程序在性能上有很大的提升。如果忽略内存管理,可能导致应用占用内存过高,导致程序崩溃。2.OC的内存管理主要有三种方式ARCMRCAutoreleasePool3.OC中内存管理的基本思想保证任何时候指向对象的指针个数和对象的引用计数相同,多一个指针

2021-05-13 15:24:25 200 1

原创 RunLoop

目录文章目录RunLoop简介RunLoop对象RunLoop的构成CFRunLoopModeRef (NSRunloopMode)CFRunLoopSourceRefCFRunLoopTimerRefCFRunLoopObserverRefRunLoop和线程间的关系RunLoop的运行逻辑RunLoop 实际应用1、自动释放池2、事件响应3、手势识别4、界面刷新5、GCD6、定时器7、常驻线程8、异步渲染RunLoop简介运行循环,在程序运行过程中循环做一些事情,如果没有Runloop程序执行完

2021-05-13 15:22:04 178 1

原创 ios 面试题

文章目录前言基础block前言网上看到的一些面试题,自己搜索答案将其整理放到一起。基础1.我们说的Objective-C是动态运行时语言是什么意思object-c类的类型和数据变量的类型都是在运行是确定的,而不是在编译时确定。例如:多态特性,我们可以使用父类对象来指向子类对象,并且可以用来调用子类的方法。运行时(runtime)特性,我们可以动态的添加方法,或者替换方法。2.讲一下...

2019-03-21 16:34:49 656

原创 ios runtime:Method Swizzling

什么是Method SwizzlingMethod Swizzling (方法交换),顾名思义,及时将两个方法的实现交换,即由原来的A-AImp、B - BImap对应关系变成了A-BImap、B-AImap。什么情况下要将两个方法的实现交换1、hook:在开发中,经常用到系统提供的API,但出于某些需求,我们可能会对其方法的实现不太满意。就想去修改它已达到更好的效果,当特定的消息发出时,会...

2019-03-20 14:07:09 158

原创 Block的一些常用问答

记录一下关于Block的相关知识。Q:什么是block,本质是什么?block是封装了函数调用以及函数调用环境的OC对象block本质上是OC对象,它的内部也有isa指针Q:block的变量捕获为了保证block内部可以正常访问外部的变量,block有个变量捕获机制Q:为什么局部变量需要捕获考虑作用域的问题,需要跨函数访问Q:block对全局变量的捕获方式全局...

2019-03-19 17:32:13 193

原创 使用ReactiveCocoa 实现简单的验证码按钮

1 创建按钮 UIButton *yzmButton = [UIButton buttonWithType:UIButtonTypeCustom]; yzmButton.backgroundColor = [UIColor orangeColor]; yzmButton.titleLabel.font = [UIFont systemFontOfSize:13]; [yzmB

2017-06-02 17:58:12 567

原创 iOS微信支付

1.首先下载最新的微信支付的SDK包 下载地址 ,拖到你的工程文件中. 简要步骤如下:1. 配置APPIDAPPID要在微信开放平台申请.(让公司去注册.)targets -> info -> URL Types配置完是这样的identifier 要使用 “weixin” 2.在APPDELEGATE引入微信LIB,和头文件.#import "WXApi.h"#import "WXApi

2016-11-22 15:35:45 281

原创 iOS实用小技巧

1. 获取控件在屏幕上的位置@interface LFAddressView()@property (nonatomic, assign) CGRect rectAddress;@end//.m/*** 获取控件在屏幕上的位置*/UIWindow * window=[[[UIApplication sharedApplication] delegate] window];self

2016-11-22 15:11:53 625

原创 iOS开发--搞定烦躁的验证码

我们开发的app里面几乎都有登陆注册系统,这时候就少不了验证码的发挥了。每次都得写这些重复的代码,没有营养又不得不写。今天下班时间,将验证码这一功能封装一下。

2016-11-22 15:03:58 2230

原创 iOS 清理缓存

大家伙都知道,随着手机使用时间的越来越长,产生的垃圾也就会越来越多,从而会影响手机系统性能和手机运行的流畅度。这时,我们就需要清理手机里的垃圾,而这些垃圾大部分都是一些缓存的一些数据。所谓缓存就是系统在运行应用软件时把一些暂时不需要调用的数据写进缓存区,当应用软件被关闭后这些被写进缓存区的数据可能不会被清理,它们仍然会驻留在缓存区中,此时为了将存储区空出来就需要清除缓存。

2016-11-22 14:52:50 1644

原创 iOS-textView文本换行高度自动适应

由于开发中需要需要个类似QQ空间的一个评论功能,首先要做的输入框肯定是会换行的,因为iOS中(TextField)是单行组件,所以只能使用(TextView)这个多行组件了,可是在不做处理的情况下这个组件的文字在换行的时候会顶出输入框解决思路: 1.通过Block 在TextView代理方法中把文字内容的ContentSize回调改变根据文字改变TextView的高度.htypedef voi

2016-08-24 16:59:51 1489

转载 iOS二维码生成(带logo)

制作一个中心带有logo的二维码

2016-08-24 16:58:42 531

转载 iOS开发-自定义控件的方式及注意

1. 使用纯代码的方式一般来说我们的自定义类继承自UIView,首先在initWithFrame:方法中将需要的子控件加入view中。注意,这里只是加入到view中,并没有设置各个子控件的尺寸。为什么要在initWithFrame:方法而不是在init方法? 因为使用纯代码的方式创建自定义类,在以后使用的时候可能使用init方法创建,也有可能使用initWithFrame:方法创建,但是无论哪

2016-08-24 16:55:24 245

转载 iOS 开发中会用到的一些小技巧

iOS 开发小技巧

2016-08-24 16:35:38 414

转载 OC-- UI基础笔记

转载 OC笔记 - UI基础控件(2015.2.3) 1.UIViewController每当显示一个新界面时,首先会创建一个新的UIViewController对象,然后创建一个对应的全屏UIView,UIViewController负责管理这个UIViewUIViewController就是UIView的大管家,负责创建、显示、销毁UIView,负责监听UIView内部的事件,负责处理UIVi

2015-06-13 16:29:23 566

转载 OC 语法总结

1、定义类: @interface 类名 : 父类 @end2、使用:(冒号)表示继承一个类 Student : NSObject3、使用()定义一个Catagory(类别)作用:在不改变原有类结构的基础上,扩展原有类的方法(不能扩展属性),但不建议重载原有类的方法开发工具默认生成的文件为:类名+Catagory名称Catagory可以写在单独的文件中,也可以写在原有类的文件中,如何写根

2015-05-12 09:49:02 455

原创 OC--Foundation(字典)

Foundation中的字典是由键-值对组成的数据集合.正如,我们在字典里查找单词的定义一样,通过key(键),查找的对应的value(值),key通常是字符串对象,也可以是其他任意类型对象.在一个字典对象中,key的值必须是唯一的.此外,字典对象的键和值不可以为空(nil)。

2015-05-11 22:12:17 342

原创 OC--Foundation 框架(2)

IOS OC

2015-05-11 21:59:45 300

原创 OC-Foundation框架(1)

IOS FOUNDATION

2015-05-11 17:16:10 448

原创 OC--Id和构造方法

iOS ID 构造方法

2015-05-11 09:53:43 409

原创 OC-分类与释放池

IOS 分类 释放池

2015-05-11 09:17:19 633

原创 OC--内存管理(2)

这一编主要写set方法的内存管理 和 循环引用的内存管理一、 set方法的内存管理如果拥有OC对象类型的成员变量,就必须管理这个成员变量的内存,比如有个 Book *_book1、 set方法的实现- (void)set Book : (Book *)book {

2015-05-11 09:11:58 333

原创 OC--内存管理(1)

一、 什么是内存管理: 1> 移动设备的内存有限,每个app所能占用的内存是有限制的 2> 当app多占用的内存较多的时候,系统会发出警告,这时就得回收一些不需要再使用得内存空间,比 如回收一些不需要得对象,变量等。二 、如何管理内存对象的基本结构: 1> 每个oc对象都

2015-05-10 20:09:10 293

原创 OC协议

对于协议的认知: 协议就是定义了一组方法,然后让其他类去实现 协议的关键字 @protocol 协议里面不能声明变量只能声明方法,任何类只要遵守协议就可以使用所有的声明,父类遵守了某个协议就相当于子类也遵守 在协议中也是可以遵守协议代码演示: 这里要注意的是,上面的代码中NSObject不是我们之前

2015-05-10 19:51:40 355

原创 OC--面向对向的三大特性(三)

多态理解起来并不难 ,简单以一句话说就是让父类指针指向子类对象,是对子类对象的一种转型。使用注意: 1> 父类的引用指向子类的对象,发送消息,调用的是子类对象的方法 2> 父类的引用指向本类的对象,发送消息 ,调用本类的方法多态的用途 1> 可以用在参数 2> 可以用在用在返

2015-05-10 18:47:25 320

原创 OC--面向对向的三大特性(二)

继承是类中的一个重要的特性,继承的使用可以提高代码的复用性。 使用注意: 1> OC 同java 一样 不支持多继承,只支持单继承,因为多继承存在安全隐患 2> 可以使用super来调用父类的类方法和对象方法 3> 子类和父类不能拥有相同的成员变量在OC中 NSObject类 是所以类的父类,当创建类时没有

2015-05-10 18:31:57 291

原创 OC--面向对向的三大特性(一)

面向对象: 就是将功能封装进对象,强调具备功能的对象 面向对象的三大特性 : 封装 、 继承 、多态 一、 对于封装的认知 封装:具体来说就是对类中的方法、变量进行一种保护,不被外界访问。 封装中的修饰符:public 、 default 、protected、 private 这几个访问权限是递减的。

2015-05-10 18:23:22 378

原创 OC--SEL和Block

SEL BLOCK

2015-05-10 18:14:47 770

原创 oc--类的声明和实现

一 . 类和对象的关系 面向对象中有两个非常重要的概念: 类和对象 1> OC 中的类相当于图纸,用来描述一类事物。也就是说,要想创建对象,必须先有类。 2> OC 利用类来创建对象 ,对象是类的具体存在。 3> 因此, 面向对象解决问

2015-05-10 16:35:47 346

原创 c 语言常用基础语句

一一 一、常用函数1.putchar函数(字符输出函数): 向终端输出一个字符。2.getchar函数(字符输入函数): 从终端输入一个字符。3.printf 函数(格式输出函数): 向终端输出若干个任意类型的数据。          >格式: printf(格

2015-05-10 16:30:00 780

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除