摘要:Block专辑: Block讲解一 MRC-block与ARC-block Block详解一(底层分析) 今天讲述Block的最后一篇,后两篇仅仅是加深1,2篇的理解,废话少说,开始讲解! __block细节 __block内存管理 循环引用问题 一:__block细节 大家可能会遇到下面的问题,b 阅读全文
posted @ 2020-03-25 23:16 国孩 阅读 (73) 评论 (0) 编辑
摘要:Block专辑: Block讲解一 MRC-block与ARC-block 本篇博客不再讲述Block的基本定义使用,最近而是看了很多的block博客讲述的太乱太杂,所以抽出时间整理下block的相关底层知识,在讲述之前,提出几个问题,如果都可以回答出来以及知道原理,大神绕过,反之,希望本篇博客对大 阅读全文
posted @ 2020-03-17 17:13 国孩 阅读 (114) 评论 (0) 编辑
摘要:今天将讲述Swift属性以及剖析inout的本质, 如有兴趣可点击关注,以后会定期更新更有料的博客!!! 一、属性 Swift中跟实例相关的属性可以分为2大类 存储属性(Stored property) 类似于成员变量这个概念 存储在实例的内存中 结构体、类可以定义存储属性 枚举不可以定义存储属性 阅读全文
posted @ 2020-03-09 21:25 国孩 阅读 (77) 评论 (0) 编辑
摘要:在Swift中,可以通过func定义一个函数,也可以通过闭包表达式定义一个函数! 一、闭包表达式 概念 闭包表达式与定义函数的语法相对比,有区别如下: 去除了func 去除函数名 返回值类型添加了关键字in { }放在形参列表的前边 闭包表达式的形式如下: { (参数列表) -> 返回值类型 in 阅读全文
posted @ 2020-03-06 23:48 国孩 阅读 (142) 评论 (0) 编辑
摘要:概述 相对Objective-C, Swift使用结构体Struct的比例大大增加了,其中Int, Bool,以及String,Array等底层全部使用Struct来定义!在Swift中结构体不仅可以定义成员变量(属性),还可以定义成员方法,和类比较相似,都是具有定义和使用属性,方法以及初始化器等面 阅读全文
posted @ 2020-03-03 17:40 国孩 阅读 (157) 评论 (0) 编辑
摘要:一、基本使用 先看枚举的几种使用(暂不要问,看看是否都能看懂,待会会逐一讲解) 1、操作一 简单使用 //第一种方式 enum Direction { case east case west case south case north func testDir() -> String { switc 阅读全文
posted @ 2020-02-27 14:56 国孩 阅读 (175) 评论 (0) 编辑
摘要:面向协议编程(Protocol Oriented Programming,简称POP),是Swift的一种编程范式,Apple于2015年WWDC提出的,如果大家看Swift的标准库,就会看到大量POP的影子。 同时Swift也是一门面向对象的编程语言(Object Oriented Program 阅读全文
posted @ 2020-02-24 23:09 国孩 阅读 (38) 评论 (0) 编辑
摘要:题目 给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, ...)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。 示例 1: 输入: n = 12 输出: 3 解释: 12 = 4 + 4 + 4. 示例 2: 输入: n = 13 输出: 2 解释: 13 = 4 阅读全文
posted @ 2020-01-19 11:24 国孩 阅读 (22) 评论 (0) 编辑
摘要:题目 给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回它的最小深度 2. 题解 最直接的思路就是递归。 阅读全文
posted @ 2020-01-18 19:32 国孩 阅读 (24) 评论 (0) 编辑
摘要:题目 给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 例如:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回其自底向上的层次遍历为: [ [15,7], [9,20], [3] ] 阅读全文
posted @ 2020-01-18 16:32 国孩 阅读 (23) 评论 (0) 编辑