今天是元宵节,祝大家元宵节快乐!在Swift中的数组和字典中下标是非常常见的,数组可以通过索引下标进行元素的查询,字典可以通过键下标来获取相应的值。在使用数组时,一个常见的致命错误就是数组越界。如果在你的应用程序中数组越界了,那么对不起,如果由着程序的性子的话是会崩溃的。为了防止崩溃呢,我们会对集合做一些安全的处理。比如对数组进行扩展,从而对数组的索引进行安全检查,保证数组的index在正常范围内。在Objective-C中也是经常对数组,字典等做一些处理操作。 今天的博客的主要内容是先对Objec
这将获取数组中的每个值并通过我们的闭包运行,其中$0表示当前获取到的数字。因此,它将是1 * 2、2 * 2、3 * 2,依此类推 -map()将从其容器中取出一个值($0),使用您指定的代码对其进行转换,然后将其放回其容器中。在这种情况下,这意味着从数组中取出一个数字,将其加倍,然后将其放回新的数组中。
Foundation框架中最常用的类。 Foundation框架中最我们经常用的类大致有NSString、NSArray、NSDictionary等等,虽然不需要将每一个类中提供了什么方法都记下来,但是需要做到心中有数,知道Foundation框架提供了什么样的方法,能够达到什么效果,用到的时候直接去API中查找即可,避免因为不知道有这些方法,而走弯路。 NSString NSString创建与内存存储 NSString是1个数据类型,用来保存OC字符串,NSString的本质是1个类,既然是1个类,所以,
网络配图 目录 1. 属性关键字 1.1 原子性 1.2 读写权限 1.3 内存管理 1.4 可空性 2. 所有权修饰符 3. 相关面试题 参考 1. 属性关键字有哪些? 分类 属性关键字 原子性 atomic、nonatomic 读写权限 readwrite、readonly、setter、getter 内存管理 assign、weak、unsafe_unretained、retain、strong、copy 可空性 (nullable、_Nullable 、__nullable)
我们可以使用setter方法为currentBalance属性赋值,这是直接的,但缺乏灵活性。
// 插入操作 shoppingList.insert("Maple Syrup", at: 0)
在Xcode7中,iOS9的SDK已经全面兼容了Objective-C的一些新特性和新功能。这些功能都只作用于编译期,对程序的运行并没有影响,因此,它可以很好的向下进行兼容,无缝的衔接低版本的iOS系统,那么这些特性有什么样的用处呢,作为开发者,我保证你一定会爱上他们,如果你可以将这些新特性都应用于你的开发,你的开发效率和代码质量,相比之前,会有一个很大的提升。
本章为算法部分,作为对程序员基本功的考察,算法几乎是所有公司、各种水平的程序员都要面对的必考内容。该部分采用 Swift 语言重新审视了多种数据结构和算法原理,可以说是为 iOS 开发者量身打造的算法解答。
json与模型的转换框架很多,YYModel 一出,性能吊打同类组件,终于找了些时间观摩了一番,确实收益颇多,写下此文作为分享。
OC集合类是一些非常有用的工具类,它可以用于存储多个数量不等的对象,并可以实现常用的数据结构(栈、队列等),此外,OC集合还可用于保存具有映射关系的关联数组。OC的集合大致可以分为:NSArray、NSSet、NSDictionary三种体系。NSArray代表有序可重复的集合;NSSet代表无序不可重复的集合;NSDictionary代表具有映射关系的集合。显然,这三类集合分别对应这Java中的List、Set和Map。 集合类和数组不一样,数组元素既可以是基本类型的值,也可以是对象(实际上保存的
一个 UIViewController 中的所有 view 之间的关系其实可以看成一棵树,UIViewController 的 view 变量是这棵树的根节点,其它的 view 都是根节点的直接或间接子节点
写这篇博客源于一个疑问:“WoK~, 这也行?!”。刚接触OC不久,今天做深浅拷贝的测试,无意中把获取NSArray的值写成了用下标获取的方式。当时把注意力放在了深浅拷贝的内存地址分析上了,就没太
集合和数组的相同点:都是存储不同元素的地址,不同点:NSSet中的元素都是被自动过滤之后的不会重复的元素,NSArray中的元素却是允许重复的;NSSet是一个无顺序的集合,NSArray是一个有顺序的集合。相对来说,NSSet的处理效率比NSArray的要快。
#import "LineChartsView.h" #import "ChartsDemo-Bridging-Header.h" #import "ChartsDemo-swift.h" #import "DateValueFormatter.h" #define kSelfWidth self.frame.size.width #define kSelfHeight self.frame.size.height @interface LineChartsView ()<IChartAxisValueF
京喜APP最早在2019年引入了Swift,使用Swift完成了第一个订单模块的开发。之后一年多我们持续在团队/公司内部推广和普及Swift,目前Swift已经支撑了70%+以上的业务。通过使用Swift提高了团队内同学的开发效率,同时也带来了质量的提升,目前来自Swift的Crash的占比不到1%。在这过程中不断的学习/实践,团队内的Code Review,也对如何使用Swift来提高代码质量有更深的理解。
为了给字符串数组排序,除了用C/C++的基本办法,iOS开发者更应该学会利用苹果专门为NSArray 排序提供的sortedArrayUsingComparator 方法:
一:在计算机科学中,二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。
前言: 一:在计算机科学中,二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。 二:二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。二叉树的第i层至多有2^{i-1}个结点;深度为k的二叉树至多有2^k-1个结点;对任何一棵二叉树T,如果其终端结点数为n_0,度为2的结点数为n_2,则n_0=n_2+1。 三:一棵深度为
一直觉得 SnapKit 和 Masonry 这两个框架设计和封装的很好,用起来的体验也是一致的,翻了下它们的源码,对其设计方式和涉及的技术做了下记录。文章打算围绕,给谁做约束?如何设置约束?设置完后如何处理?这三个问题看看 SnapKit 和 Masnory 分别是怎么做的,正好也能够窥探下作者是如何利用 Swift 和 Objective-C 两个不同语言的不同特性做到一致的使用体验的。
翻译自raywenderlich网站iOS教程Swift Algorithm Club系列
我们要计算图片,需要将图片像素通过颜色空间转换为二进制数据,再将二进制数据转换为颜色,从而获取到这张图片的所有颜色数据。
说到JavaScript脚本,iOS开发者都会想到一个名叫JavaScriptCore的框架。这个框架的确十分强大,其中封装了一套JavaScript运行环境以及Native与JS数据类型之间的转换桥梁。本篇博客主要讨论如何使用此框架来在iOS应用中运行JavaScript脚本。
下面详细的介绍Objective-C中的集合类以及每个集合类的用法,学过其他面向对象编程语言的小伙伴们看到OC的集合类会有种莫名的亲切感,理解起来问题不大,可以类比Java中的集合类去学习。 在Objective-C中的集合类中主要包括不可变的数组--NSArray, 可变的数组--NSMutableArray, 不可变的字典--NSDictionary, 可变的字典--NSMutableDictionary, 不可变的集合--NSSet,可变的集合--NSMutableSet。
前言 runtime的资料网上有很多了,部分有些晦涩难懂,我通过自己的学习方法总结一遍,主要讲一些常用的方法功能,以实用为主,我觉得用到印象才是最深刻的,并且最后两个demo也是MJExtension的实现原理,面试的时候也可以多扯点。 另外runtime的知识还有很多,想要了解更多可以看我翻译的官方文档(有点枯燥),本文的demo下载地址 什么是runtime? runtime 是 OC底层的一套C语言的API(引入 <objc/runtime.h> 或<objc/message.h>),编译器最终都会
runtime的资料网上有很多了,部分有些晦涩难懂,我通过自己的学习方法总结一遍,主要讲一些常用的方法功能,以实用为主,我觉得用到印象才是最深刻的,并且最后两个demo也是MJExtension的实现原理,面试的时候也可以多扯点。
几年前,一篇表述“10个Scala函数式单行代码”的文章非常受欢迎,并且随后立马出现了其他的语言版本,例如Haskell版本,Ruby版本,Groovy版本,Clojure版本,Python版本,C#版本,F#版本,CoffeeScript版本等。
前一篇我们使用腾讯封装的TRTCCalling接入了1v1的音视频通话,今天还是使用此模块进行实现多人音视频通话及其常用TRTCSDK的API。
模型 概念 专门用来存放数据的对象 特点 一般直接继承自NSObject 在.h文件中声明一些用来存放数据的属性 首先创建实体类,具备属性,可用点语法 模型定义示例 @interface Shop : NSObject /** 名字 */ @property (nonatomic, strong) NSString *name; /** 图标 */ @property (nonatomic, strong) NSString *icon; /** 通过一个字典来初始化模型对象 */ - (instan
最近看了一些Swift关于封装异步操作过程的文章,比如RxSwift,RAC等等,因为回调地狱我自己也写过,很有感触,于是就翻出了Promise来研究学习一下。现将自己的一些收获分享一下,有错误欢迎大家多多指教。
简单记录学习Swift的笔记 简单值 使用let来声明常量,使用var来声明变量。 常量或者变量的类型,必须和你赋给它们的值一样。然而,不用明确地声明类型,声明的同时赋值的话,编译器会自动推断类型。 如果初始值没有提供足够的信息(或者没有初始值),那你需要在变量后面声明类型,用冒号分割。 值永远不会被隐式转换为其他类型。如果你需要把一个值转换成其他类型,请显式转换。 例如 let label = "The width is" let width = 94 let widthLabel = label + S
本文首发于我的个人博客:『不羁阁』 https://bujige.net 文章链接:https://bujige.net/blog/iOS-Foundation-Array.html 本文对Foundation框架中的数组类(NSArray、MutableNSArray)的使用做一个详细的总结。 1. NSArray 1. NSArray介绍 NSArray是OC中的数组类,开发中建议尽量使用NSArray替代C语言中的数组 C语言中虽然也有数组,但在开发的过程中存在一些弊端 int arr
一个iOS开发初级菜鸡.png Swift 基本语法01-Swift简介 Swift 基本语法02-"let"和"var" Swift 基本语法03-"if let"和"guard let" Swift 基本语法04-"switch"和"for" Swift 基本语法05-"String" 一、数组的定义 1.1 Swift与OC一样,使用[]定义数组, 区别: 1> Swift没有@符号 2> 中文也可以正常输出 3> 而且可以根据数组中的内容自动推导出数组的类型(和OC中的数组指定泛型类似
本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。
最近一直在研究ReactiveCocoa,现在也来讲讲ReactiveCocoa中一些基础类的作用。
3、Set 独有的方法有哪些? 4、实现一个 min 函数,返回两个元素较小的元素 5、map、filter、reduce 的作用 6、map 与 flatmap 的区别 7、什么是 copy on write 8、如何获取当前代码的函数名和行号 9、如何声明一个只能被类 conform 的 protocol 10、guard 使用场景 11、defer 使用场景 12、String 与 NSString 的关系与区别 13、怎么获取一个 String 的长度 14、如何截取 String 的某段字符串 15、throws 和 rethrows 的用法与作用 16、try?和 try!是什么意思 17、associatedtype 的作用 18、什么时候使用 final 19、public 和 open 的区别 20、声明一个只有一个参数没有返回值闭包的别名
从 Xcode 7 开始,为了更简单和高效的与 Swift 交互, Objective-C 支持了引入了 3 个高级特性:轻量泛型、Nullability annotation、KindOf。
翻译自:https://docs.swift.org/swift-book/LanguageGuide/CollectionTypes.html
以下:「attribute(s)」,「特性」是指同一事物(都指@property后面括号内的单词)。
NSString*aString = [[NSString alloc] initWithData:adata encoding:NSUTF8StringEncoding];
全局函数 Global functions :无需特定类型范围就可以从任何地方访问的函数是一个古老的概念,在 C 和 Objective-C 等语言中很流行,但是在 Swift 中不建议使用,因为我们希望对它们进行很好的类型化和范围划分("swifty")。
在Swift中存在Option类型,也就是使用?和!声明的变量。但是OC里面没有这个特征,因为在XCODE6.3之后出现新的关键词定义用于OC转SWIFT时候可以区分到底是什么类型
类型转换可以判断实例的类型,也可以将该实例在其所在的类层次中视为其父类或子类的实例。
大家一直都在寻求能够动态更新业务的方法,关于这方面的框架也是层出不穷。自从 Facebook 推出 React Native 以后,便以其良好的兼容性和性能优势占据了这方面的领先地位,携程也在此基础上开源了CRN 框架。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/118291.html原文链接:https://javaforall.cn
概述 我们前面的章节中就一直新建Cocoa Class,那么Cocoa到底是什么,它和我们前面以及后面要讲的内容到底有什么关系呢?Objective-C开发中经常用到NSObject,那么这个对象到底是谁?它为什么又出现在Objective-C中间呢?今天我们将揭开这层面纱,重点分析在IOS开发中一个重要的框架Foundation,今天的主要内容有: 1. Foundation概述 2. 常用结构体 3. 日期 4. 字符串 5. 数组 6. 字典 7. 装箱和拆箱 8. 反射 9. 拷贝 10. 文件操作
说到数组和字典,只要是编过程的小伙伴并不陌生。在Swift中的数组与字典也有着一些让人眼前一亮的特性,今天的博客就来窥探一下Swift中的Array和Dictionary。还是沿袭之前的风格,在介绍Swift中的数组时,我们会对比一下ObjC中的数组和字典,因为ObjC也是iOS开发的主要语言不是。无论是简单还是复杂的程序,数组和字典的用处还是比较多的,这两者虽然是Swift的基础内容,但是也不失其重要性。关于Objc的集合类请参考之前的博客《Objective-C中的集合类》。 一、Swift中的数组(A
有关Runtime的知识总结,我本来想集中写成一篇文章的,但是最后发现实在是太长,而且不利于阅读,最后分成了如下几篇:
一个iOS开发初级菜鸡.png Swift 基本语法02-"let"和"var" Swift 基本语法03-"if let"和"guard let" Swift 基本语法04-"switch"和"for" Swift 基本语法05-"String" Swift 基本语法06-数组和字典 Swift 简介 Swift2014年06月WWDC大会发布 2015年底开源 IBM开始用Swift做后台开发 Swift取消了预编译指令(包括宏,比如Masonry) 没有了中括号,和其它语言比较接近 3.0
枚举值特别多的时候,想每一个枚举值都具体注释提示的话,就只能在每个枚举上一行加上/// ···或/** ··· */,但是会让代码显得不整齐(可能是我强迫症?),如果需要给每个枚举值增加一个简短的注释
在OOP的世界里使用FRP的思想来编程,光有函数这种一等公民,还是无法满足我们一些需求的。因此还是需要引用变量来完成各式各样的类的操作行为。
领取专属 10元无门槛券
手把手带您无忧上云