自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

HPerry的博客

记录自己学习的点滴!

  • 博客(14)
  • 收藏
  • 关注

原创 KVO 、 KVC底层学习

1.1、什么是KVO全称Key-value observing,键值监听;可以用于监听某一个对象的属性的改变。1.2、 kvo怎么实现对一个对象的属性进行监听的?对某个属性添加监听后,runtime动态给当前类创建了一个NSKVONotifying_ 类名 的派生类(继承于class对象);而且instance对象的isa指针指向这个class对象; 当instance对象被监听的属性改变的时候(属性改变走的是setter方法,而setter方法存放在class对象中),instance对象就.

2020-08-18 22:27:32 538

原创 Block底层学习

1、本质是一个oc对象,它内部有isa指针;继承于NSObject;比如可以通过调用class方法查看block的类型 Block是封装了函数调用以及函数调用环境的oc对象2、 block的数据结构Funcptr为函数调用地址,这里的age为block截取外部的变量Desc为描述信息结构体,block_size为block的大小block的调用时候实质是funcptr的实现3、block的变量捕获为了保证block内部能正常使用外部变量,block有个捕获机制对于局部基本

2020-08-18 22:16:17 190

原创 Category底层学习

1、Category加载过程本质在编译的时候,Category会被编译成叫做_Category_t的结构体,里面存储了属性列表、协议列表、对象方法、类方法列表。在程序运行时,runtime会将Category的数据合并到类对象和元类对象中。运行时通过Runtime加载某一个类的所有Category数据 把所有Category的方法、属性、协议数据合并到一个大数组中,后面参加编译的Category数据会在数组的最前面 将合并后的Category数据,插入到类原来数据的前面所以Ca...

2020-08-18 22:01:56 320

原创 OC底层-OC对象的本质

OC对象的本质1.1、NSobject 对象底层实际是有一个isa指针的NSObject_IMPL结构体;1.2、一个object对象会分配的到多少内存?大小16个字节 ,可以用malloc_size输出查看大小;实际成员isa占用是8(64bit环境下),但是coreFoundtion框架内部规定小于16就分配16; (其实ios操作系统分配内存都是16的倍数,其实对象实际占不了那么大的内存) int 4个 bool 1个class_getInstanceSize...

2020-08-18 21:54:18 270

原创 【APP审核】发加速审核邮件

每次APP审核的时候都要发一次加急审核邮件给审核团队;然而每次小白都需要google下怎么加急审核(只怪自己记忆力不行);苹果也是把加急审核请求隐藏也够深!查了下前天上架的项目还在等待审核中,想了想还是发一封加急邮件吧 ,然后小白又google了;今天索性直接扔一个连接在自己博客,以后就不会到处找了!链接:https://developer.apple.com/

2017-07-12 09:33:34 2559 1

原创 Swift学习之 - 访问控制权限(fileprivate,private,internal,public,open)

先来看下小白的错误代码import UIKitclass ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() text() } }extension ViewControlle

2017-07-12 09:17:46 2401

原创 swift学习 -> 计算型属性(rendonly)、didSet、懒加载(lazy)

一、gitter setter在oc中都有git、和set方法,swift同样也有;已name:string? 为列! //gitter setter 日常开发不用 private var _name:String? var name:String?{ get{ //返回 _成员变量 return

2017-07-11 09:21:51 541

原创 命名空间、反射机制

一、命名空间       命名空间是用来组织和重用代码的。如同名字一样的意思,NameSpace(名字空间),之所以出来这样一个东西,是因为人类可用的单词数太少,并且不同的人写的程序不可能所有的变量都没有重名现象,对于库来说,这个问题尤其严重,如果两个人写的库文件中出现同名的变量或函数(不可避免),使用起来就有问题了。为了解决这个问题,引入了名字空间这个概念,通过使用 namespac

2017-07-11 08:41:35 609

原创 swift学习之--函数、构建函数、kvc构建函数

一、函数格式及带参函数  /// 函数定义格式, 函数名(形参列表)-返回值 func sum(x: Int,y: Int) -> Int { return x + y } //外部参数,在形参前加一个名字,外部参数不会影响函数,外部参数让函数看起来更直观 //外部参数使用“-”,调用函数的时候会忽略形参名字 func su

2017-07-10 09:05:42 220

原创 swift学习--闭包的循环引用解决

一、什么是循环引用、怎么发生的     循环引用就是当self 拥有一个block的时候,在block 又调用self的方法。形成你中有我,我中有你,谁都无法将谁释放的困局。    在oc中,通常解决block循环引用的办法就是weak来修饰self!    __weak typeof self (weakself) = self    swift中的闭包等于OC中的block,因

2017-07-06 10:50:23 531

原创 swift学习--闭包

闭包类似于oc中的block,用法基本类似!oc中block为一种匿名的函数,而在swift中函数为特殊的闭包!一、什么是闭包1.提前准备好代码块2.在需要的时候执行3.可以当参数使用二、闭包类型//格式{形参列表 ->返回值类型 in//实现代码} //1.无参数闭包,当没有参数是可以省去in let clos = {

2017-07-06 09:09:01 225

原创 swift - array、dictionary 的学习

一.数组 1.初始化,和oc一样用【】定义数组,但是@ int型,string型,any型var intArray = [Int]()var stringArray = [String]();var anyArray = [Any](); func demo() { //和oc一样【】定义数组 ,但是没有@

2017-07-05 09:11:59 339

原创 string?变量进行强解包发生崩溃的解决办法

swift学习第一天:正式学习swift,可能有很多问题不怎么明白,如有问题,请指出!O(∩_∩)O谢谢  1.swift中定义一个变量,系统不会自动赋值,变量不会分配到内存,所以事先初始化!  2. 注释语气:    //MARK: + 说明    //类似oc中的#pragma mark        //TODO: + 说明:    //如果代码中

2017-07-04 11:24:11 867

原创 【PLA1.2】审核被拒个人解决方法

第一次接触金融类app,上架遇到不少坑,主要是PLA1.2;遇到这个问题的朋友基本都是被拒多次的!为了让第一次接触金融类app的朋友少走弯路;在这里,简单的分享下我是怎么解决这个问题的!1.公司账号上传是必然的!之前用个人账号上传导致被拒了2次,然后乖乖去升级了;网上攻略很多,主要是D&B申请花时间,那边给出的时间是1到2周,发邮件加急是没用的,只求他们能处理快点;

2017-07-04 09:33:31 1057 1

空空如也

空空如也

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

TA关注的人

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