我们在开发 iOS 程序的时候,往往都会根据需要导入很多的第三方框架,但是不同的框架完成的功能不同,所以导入的方式也不同,并不是把它直接拖进工程中就完事了,我们需要配置各种环境,链接各种库文件等等。...这个时候我们就需要用到 cocoapods 来管理我们的第三方了,在我们有了 CocoaPods 这个工具之后,只需要将用到的第三方开源库放到一个名为 Podfile 的文件中, 然后在命令行执行 $...网上也有类似的教程,但是有些很旧,有些写的不详细,导致新手在使用的时候整的一头雾水,我就来说下。...### 第五步: 进入你的工程目录,这里建议直接右键你工程中.xcodeproj 文件选择在终端中打开,然后 在终端中输入命令 cd .. ...注意以上所有的增删改操作完成之后需要在去终端中相应的目录下使用 pod install --verbose --no-repo-update 命令来更新,这样才会真正的生效。
上面是后端同学按照照module的方式开发的服务,在整个的项目中请求中前缀相同而每个module都有自己的前缀,结合起来整个请求URL格式就可以拆分为 HOT:PORT?...正如我们的标题一样我们采用category将统一的网络请求拆分到不同的文件中---类似服务端的module一样将器拆分到不同的文件中进行管理 比如上面的我们将通过用的网络请求放置到ApiFetch这个类中...保持一致我们进行各模块的网络请求管理以便根据某一某块的特殊要求作出变化,例如,user模块中 -(void)userGetFetch:(NSString *)url query:(NSDictionary...中附带一个module对应的参数---user,对应的Oder也会添加一个order作为模块url参数的前缀 然后是模块对应的url的管理啦: 如上图每个模块都有自己的path对应url,我们可以统一的防止在...category对应的头文件中 总之一句话就是分而治之,将杂而乱的url分化到不同的模块中去,按照每个模块的特性去进行管理 最后我们看看怎么使用吧 user模块的网络请求实例 NSDictionary
作者 | 田思洋(北京科技大学在读博士生,主要研究方向图像识别,表面检测) ▌关于交叉熵在loss函数中使用的理解 交叉熵(cross entropy)是深度学习中常用的一个概念,一般用来求目标与预测值之间的差距...在机器学习中,我们需要评估label和predicts之间的差距,使用KL散度刚刚好,即 ? ,由于KL散度中的前一部分 ? 不变,故在优化过程中,只需要关注交叉熵就可以了。...所以一般在机器学习中直接用交叉熵做loss,评估模型。 ▌机器学习中交叉熵的应用 1 为什么要用交叉熵做loss函数?...所以一般针对分类问题采用交叉熵作为loss函数 2 交叉熵在单分类问题中的使用 这里的单类别是指,每一张图像样本只能有一个类别,比如只能是狗或只能是猫。...对应一个batch的loss就是 ? m为当前batch的样本数 3 交叉熵在多分类问题中的使用 这里的多类别是指,每一张图像样本可以有多个类别,比如同时包含一只猫和一只狗。
一.SQLite的使用 采用SQLite数据库来存储数据。SQLite作为一中小型数据库,应用ios中,跟前三种保存方式相比,相对比较复杂一些。还是一步步来吧!...第一步:导入头文件 需要添加SQLite相关的库以及头文件:在项目文件的Build Phases下,找到Link Binary Library(ies),添加libsqlite3.0.dylib(libsqlite3....dylib与前者的区别暂时不知,两者应该差不多);在项目文件中头文件或者源文件中添加头文件#import "/usr/include/sqlite3.h" 第二步:开始使用SQLite: 1.打开数据库...使用前注意:如果不往数据库里面添加任何的表,这个数据库等于没有建立,不会在硬盘上产生任何文件,如果数据库已经存在,则会打开这个数据库。...这是因为数据库默认使用ascII编码方式。所以要想正确从数据库中取出中文,需要用NSString来接收从数据库取出的字符串。
https://blog.csdn.net/u010105969/article/details/80091745 背景: 在swift工程中要使用一个刷新控件,网上的建议还是直接使用MJRefresh...,于是就在swift工程中导入了MJRefresh,并进行了使用。...具体使用: (使用cocoaPods将MJRefresh继承到项目中,MJRefresh虽然是OC版本的,但确能在swift项目中直接使用并不用进行桥接) 为UITableView添加刷新、加载的视图...2.刷新、加载的方法 ? 本篇文章到这里就结束了,愿大家加班不多工资多,男同胞都有女朋友,女同胞都有男朋友。
当然我想起在UNITY3D中,如果检视面板的数值发生改变对应的GameObject发生位移之类的。我曾经实现了一个inspector的编辑器类,值改变直接通知(其实是调用)对应的函数。...在iOS这里 一切发生的那么自然。不需要额外实现 这是iOS的特性之一 名曰:KVO 。 前情提要 上一篇 KVC 讲到需要遵循的几条几本规则在 KVO 中同样适用。...骆驼命名法,不能数字开头 不能包含空格 键必须是ASCII编码的 使用默认的get/set 上一章 只要是针对 object 的元素查询,调用,筛选。...在值改变之前和值改变之后。 0 不带任何参数进去 传递给监听的值在接受函数ofObject:(id)object可以获取到。...手动触发KVO也是允许的,下面主要使用到了 willChangeValueForKey / didChangeValueForKey 这两个函数。即使禁止了自动通知也可以直接在get函数中触发。
在 C# 里我们常用 .net reflect 类库配合typeof/getType来反射设置函数与字段等等。在iOS里也有这样的功能,比C#的门槛低的多。...只要你合乎规范的定义函数与属性字段,就能方便的使用。...使用KVC 下面的函数 我将接通过KVC的接口 setValue forKey && setValue forKeyPath ,来设置属性 与 调用方法。...KVC在便利数组上尤为方便,下面是使用@sum函数直接给数组的price属性求和。.../@distinctUnionOfObjects //返回一个包含所有元素的数组 / 返回一个不重复元素的数组 使用要求 骆驼命名法,不能数字开头 不能包含空格 键必须是ASCII编码的 使用默认的get
概要 RunLoop在iOS开发中的应用范围并没有像runtime 那样广泛,我们通过CFRuntime的源代码可知runloop跟线程的是密不可分的,一个线程一定会创建一个对应的runloop,只是主线程创建就自动...此外,runloop并不是一个简单的do-while,作为OSX/iOS系统中Event Loop表现,runloop需要处理消息事件,在没有消息的时候休眠,有消息事件的时候立刻唤醒。 ...,通过异常捕获然后弹出提示框 而不是立马闪退,同时也可以让用户上传crash日志,早期我还是看到APP在使用这样的技术,现在crash收集机制越来越完善,目前来说几乎有这么使用的了。...系统会监听主线程中runloop的的进入/休眠、退出的activities 来处理autoreleasepool,也是同学们长讨论的自动释放池在什么时候释放的问题。...image.png 3.3 TableView中实现平滑滚动延迟加载图片 顺带提一下,这个我在开发中没有用到。
要做到这一点,最简单的方法是调查车道线是直线的图像,并找到沿线的四个点,在透视变换之后,从鸟瞰视角使线看起来笔直且垂直。...有很多方法可以解决这个问题,但是在直方图中使用峰值效果很好。 在对道路图像进行校准,阈值处理和透视变换之后,我们应该有一个二值图像,车道线清晰可见。...(histogram) 使用这个直方图,我将图像中每列的像素值相加。...在我的阈值二进制图像中,像素是0或1,所以这个直方图中最突出的两个峰值将成为车道线底部x坐标的良好指标。我可以用它作为寻找线条的起点。...lane_detection.py中的函数render_curvature_and_offset用于将检测到的车道线返回到原始图像上,并使用填充的多边形绘制检测到的车道。
使用颜色变换,渐变等创建阈值二值图像 使用颜色和渐变阈值的组合来生成二进制图像,方法compute_binary_image()可以在lane_detection.py中找到。...要做到这一点,最简单的方法是调查车道线是直线的图像,并找到沿线的四个点,在透视变换之后,从鸟瞰视角使线看起来笔直且垂直。...检测车道像素,找到车道边界 现在有一个阈值扭曲的图像,我们准备绘制出车道线!有很多方法可以解决这个问题,但是在直方图中使用峰值效果很好。...使用这个直方图,我将图像中每列的像素值相加。在我的阈值二进制图像中,像素是0或1,所以这个直方图中最突出的两个峰值将成为车道线底部x坐标的良好指标。我可以用它作为寻找线条的起点。...执行: 输出车道边界的视觉显示和车道曲率和车辆位置的数值估计 lane_detection.py中的函数render_curvature_and_offset用于将检测到的车道线返回到原始图像上,并使用填充的多边形绘制检测到的车道
//使用block实现链式编程 People *p= [[People alloc]init]; // p.run() [p run]();// 执行方法的同时之后...的妙用:结合block和方法的优点实现iOS的链式编程) 文章:https://blog.csdn.net/z929118967/article/details/107835195 从CSDN资源下载完整..., 76)); }]; } return _imgForReason; } see also iOS...富文本&图文混排的使用指南 1、封装富文本API,采用block实现链式编程 2、 超链接属性 3、HTML字符串与富文本互转 4、创建带有图片的富文本 ———————————————— 版权声明:本文为...CSDN博主「#公众号:iOS逆向」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/...
,介绍目前在项目中runtime的具体使用,真切希望和各位同学探讨。...1 关联对象(AssociatedObject ) Catagory主要为已经存在的类(主要是系统类)扩展新的方法,关联对象是runtime在开发中应用的最广泛,其主要用于为Catagory的对象增加属性...为代表的热修复技术被开发者推崇,通过逆向中国市面上有头有脸的iOS应用,我发现几乎都使用JSPath或者JSPath的变种。...处理用户登录 5.4Crash的防范 OC中容器类在空值nil 和数组越界都会直接导致我们app 的crash 我们一种处理方式是利用Category增加新方法中判断值是否为空或者越界,对于新工程我们使用大家约定使用容器的...6 逆向开发 逆向开发主要集中在iOS越狱方面,逆向开发可以让我们在iOS开发中打开另一扇门,对于大部门开发者来说很少接触这个领域,我也是在工作中才接触到iOS的越狱,逆向开发的基础就是利用Method
记录的存储位置=f(关键字) 这里的对应关系f称为哈希函数(散列函数),采用散列技术将记录存储在一块连续的存储空间中,这块连续存储空间称为散列表或哈希表(Hash table)。...解决冲突的常用方法: 1.开放定址法:使用某种探查(亦称探测)技术在散列表中寻找下一个空的散列地址,只要散列表足够大,空的散列地址总能找到。...,向后查找即可 image.png 哈希在OC中的应用 NSDictionary 1.使用 hash表来实现key和value之间的映射和存储 2.字典的key需要遵循NSCopying协议,重写hash...3.NSString类作为key的时候不需要重写,系统已经重写过了,对于值相同的字符串得到的哈希值相同 NSDictionary实现原理 iOS底层原理:NSDictionary原理 runloop kvo...该函数的动作如下: 1、从weak表中获取废弃对象的地址为键值的记录 2、将包含在记录中的所有附有 weak修饰符变量的地址,赋值为nil 3、将weak表中该记录删除 4、从引用计数表中删除废弃对象的地址为键值的记录
本文重点 NSThread 多线程基础、pthread、开启线程的3种方式 线程的状态、线程安全问题、线程间的通信 GCD 同步方法和异步方法、队列的使用、线程间的通信 延迟执行、一次性代码、队列组...即线程是进程的基本执行单元 1)线程的串行:一个线程中任务的执行是串行的 2)多线程的原理:同一时间,CPU只能处理一条线程。...多线程并发执行,其实就是CPU快速地在多条线程之间调度(如果CPU调度的时间足够快,就造成了多线程并发执行的假象) 二、多线程在iOS开发中的应用 1、什么是主线程:一个iOS程序运行之后,默认会开启一条线程...,称为“主线程”,或者“UI线程” 2、主线程的主要作用: 显示、刷新UI界面 处理UI事件(点击、滚动、拖拽) 2.1 主线程的使用注意事项: 别将比较耗时的操作放到主线程中 一般的解决方案就是将那些耗时的操作放到另外一个线程中去执行...2.2 iOS中多线程的实现方案 公众号:iOS逆向 iOS支持多个层次的多线程编程,层次越高的抽象程度越高,使用也越方便,也是苹果最推荐使用的方法。
在看文档的过程中,发现GCD的变化跟OC相比简直都要不认识了,赶紧写个文章总结下,顺手复习下GCD中死锁的概念,死锁的总结发布在另一篇文章里了。...所以 Swift 3 中对它的语法进行了彻底的改写。...比如最常用的,在一个异步队列中读取数据, 然后再返回主线程更新 UI, 这种操作在新的 Swift 语法中是这样的: DispatchQueue.global().async { DispatchQueue.main.async...再使用 DispatchQueue.main.after 让这个操作在 60 秒后执行。 相比于之前的 GCD 语法,那就容易理解很多了。...希望这篇文章能帮你节省查阅文档的时间, 在闲暇时刻了解一些技术点。
这样的展示方式使得用户在使用导航的过程中,需要将地图指引信息和语音播报信息与当前自车所处的真实世界连接起来,才能理解引导信息的具体含义,之后做出相应驾驶动作。...并且由于车道线在ADAS和自动驾驶任务中的特殊地位,可以将车道线检测逐步从通用的分割任务中独立出来,并且取得了较大的进展。...由于在较多的应用场景中只关注当前车道车道线,大多数方案是先识别全部的车道线,然后通过空间位置关系进行后处理,提取出当前车道车道线,但这个过程中容易出错,稳定性较差,Jiman Kim在2017年提出在图像分割时赋予当前车道左右车道线不同的类别...,实例分割以当前车道为中心的4条车道线,与此同时输出单条车道线的置信度,可以为实际使用的多元信息融合提供依据。...神经网络量化就是将高精度的模型权重量化为低比特的数据,以使用更少的数据位宽来实现神经网络的存储和计算,这样既能减少运算过程中的带宽,又能降低计算量。
比如我们在写消息列表的时候,未读消息一般都有个红点,点击一下红点消失。这个功能通常的做法就是Model中标识消息已读。然后在Reload TableView或者Cell。..._msgDataArr[indexPath.row]; [msgModel removeObserver:cell forKeyPath:@"isRead"]; } } 使用...KVO来监听isRead属性,当点击Cell的时候处理 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath
https://blog.csdn.net/u010105969/article/details/80307208 在iOS开发中不可避免地会用到图片下载功能,在OC中有SDWebImage这个经典三方库...,而在swift中同样有一个知名图片下载的三方库,那就是Kingfisher。...Kingfisher的使用: ?...placeholder: UIImage(named: “test”), options: nil, progressBlock: nil, completionHandler: nil) 目前我使用的
iOS中UIWebView的使用详解 一、初始化与三种加载方式 UIWebView继承与UIView,因此,其初始化方法和一般的view一样,通过alloc和init进行初始化,其加载数据的方式有三种...,用于寻找html文件中引用的图片等素材。...(4_0); 设置是否使用内联播放器播放视频 @property (nonatomic) BOOL mediaPlaybackRequiresUserAction NS_AVAILABLE_IOS(4_...@property (nonatomic) BOOL keyboardDisplayRequiresUserAction NS_AVAILABLE_IOS(6_0); 设置用户交互模式 三、iOS7中的一些新特性...(nonatomic, readonly) NSUInteger pageCount NS_AVAILABLE_IOS(7_0); 获取分页数 四、webView协议中的方法 - (BOOL)webView
领取专属 10元无门槛券
手把手带您无忧上云