- 博客(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 556
原创 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 210
原创 Category底层学习
1、Category加载过程本质在编译的时候,Category会被编译成叫做_Category_t的结构体,里面存储了属性列表、协议列表、对象方法、类方法列表。在程序运行时,runtime会将Category的数据合并到类对象和元类对象中。运行时通过Runtime加载某一个类的所有Category数据 把所有Category的方法、属性、协议数据合并到一个大数组中,后面参加编译的Category数据会在数组的最前面 将合并后的Category数据,插入到类原来数据的前面所以Ca...
2020-08-18 22:01:56 338
原创 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 298
原创 【APP审核】发加速审核邮件
每次APP审核的时候都要发一次加急审核邮件给审核团队;然而每次小白都需要google下怎么加急审核(只怪自己记忆力不行);苹果也是把加急审核请求隐藏也够深!查了下前天上架的项目还在等待审核中,想了想还是发一封加急邮件吧 ,然后小白又google了;今天索性直接扔一个连接在自己博客,以后就不会到处找了!链接:https://developer.apple.com/
2017-07-12 09:33:34 2722 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 2419
原创 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 569
原创 命名空间、反射机制
一、命名空间 命名空间是用来组织和重用代码的。如同名字一样的意思,NameSpace(名字空间),之所以出来这样一个东西,是因为人类可用的单词数太少,并且不同的人写的程序不可能所有的变量都没有重名现象,对于库来说,这个问题尤其严重,如果两个人写的库文件中出现同名的变量或函数(不可避免),使用起来就有问题了。为了解决这个问题,引入了名字空间这个概念,通过使用 namespac
2017-07-11 08:41:35 620
原创 swift学习之--函数、构建函数、kvc构建函数
一、函数格式及带参函数 /// 函数定义格式, 函数名(形参列表)-返回值 func sum(x: Int,y: Int) -> Int { return x + y } //外部参数,在形参前加一个名字,外部参数不会影响函数,外部参数让函数看起来更直观 //外部参数使用“-”,调用函数的时候会忽略形参名字 func su
2017-07-10 09:05:42 235
原创 swift学习--闭包的循环引用解决
一、什么是循环引用、怎么发生的 循环引用就是当self 拥有一个block的时候,在block 又调用self的方法。形成你中有我,我中有你,谁都无法将谁释放的困局。 在oc中,通常解决block循环引用的办法就是weak来修饰self! __weak typeof self (weakself) = self swift中的闭包等于OC中的block,因
2017-07-06 10:50:23 563
原创 swift学习--闭包
闭包类似于oc中的block,用法基本类似!oc中block为一种匿名的函数,而在swift中函数为特殊的闭包!一、什么是闭包1.提前准备好代码块2.在需要的时候执行3.可以当参数使用二、闭包类型//格式{形参列表 ->返回值类型 in//实现代码} //1.无参数闭包,当没有参数是可以省去in let clos = {
2017-07-06 09:09:01 246
原创 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 357
原创 string?变量进行强解包发生崩溃的解决办法
swift学习第一天:正式学习swift,可能有很多问题不怎么明白,如有问题,请指出!O(∩_∩)O谢谢 1.swift中定义一个变量,系统不会自动赋值,变量不会分配到内存,所以事先初始化! 2. 注释语气: //MARK: + 说明 //类似oc中的#pragma mark //TODO: + 说明: //如果代码中
2017-07-04 11:24:11 891
原创 【PLA1.2】审核被拒个人解决方法
第一次接触金融类app,上架遇到不少坑,主要是PLA1.2;遇到这个问题的朋友基本都是被拒多次的!为了让第一次接触金融类app的朋友少走弯路;在这里,简单的分享下我是怎么解决这个问题的!1.公司账号上传是必然的!之前用个人账号上传导致被拒了2次,然后乖乖去升级了;网上攻略很多,主要是D&B申请花时间,那边给出的时间是1到2周,发邮件加急是没用的,只求他们能处理快点;
2017-07-04 09:33:31 1075 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人