
iOS开发
iOS相关技术文章,经验总结
huhansome
三人行必定有三人
展开
-
textView和textField输入控制
swift协议的使用,UITextView和UITextField输入控制文章出自我的博客:huhansome的博客InputInspectable对于textView和textField输入常常会遇到很多的要求,现在的三方键盘越来越多,输入的乱七八糟的也多,对于检测是个挑战,而且很多时候因为输入了这些火星文导致程序异常,InputInspectable就是为了解决这类输入的问题,方便好用,不需要做修改,也不需要写大量代码,甚至订阅通知、设置代理等,只需要设置一个正则表达式即可达到目的,对于正则,代码原创 2020-07-23 10:21:11 · 427 阅读 · 1 评论 -
iOS自动布局,iOS autolayout
iOS storyboard 和 xib布局细节,intrinsicContentSize和contentHuggingPriority等的作用文章出自我的博客:huhansome的博客不得不说在平常的iOS开发中,我们依赖了太多的三方库,导致Apple自身的东西或多或少的有些生疏,尤其是在iOS开发中布局这块的工作,像开源的Masonry,swift版本的SnapKit等占据了我们平常APP中布局的中要角色,很少有人会使用Apple自身的api,像NSLayoutConstraint等,以及Apple原创 2020-07-23 10:15:54 · 223 阅读 · 0 评论 -
Python实现动态验证码功能
Python如何生成验证码;Python生成网站验证码,python图片处理:绘制文章出自我的博客:huhansome的博客上次切图用到了强大的PIL库,这次继续玩一玩PIL。在某些网站经常会看到验证码图片,于是就想到自己写一个看看,python写这种验证码好像可以写的很炫的样子。这次主要用到PIL的图片生成功能,顺带用了一下模糊滤镜。#!/usr/bin/python# -*- coding:utf-8 -*-from PIL import Image, ImageDraw, ImageF原创 2020-07-23 10:13:23 · 941 阅读 · 1 评论 -
python图片处理:切图
Python图片处理代码,Python实现自动化切图文章出自我的博客:huhansome的博客继爬取科技新闻之后,可以说大大的感觉到python的好处,不管是做些偷懒的事还是其他(至于是什么事就不吐露了),某次巧合之中,iOS程序需要更换APPicon,但是偏偏美工同学繁忙,怎么办,写个代码自己切图。主要使用PIL 图片处理库,这个库的功能太过复杂,包括切片、旋转、滤镜、输出文字、调色板,在这里主要利用一点皮毛功能。PIL 的安装windows安装PIL,pillow取代PILpip insta原创 2020-07-23 10:12:39 · 1159 阅读 · 0 评论 -
python科技新闻爬取
python自动爬取新闻发送到邮箱,每天自动获取早间新闻文章出自我的博客:huhansome的博客从python线上巡检 中尝到甜头之后,觉得python这门语言还真是实在,于是想了想,每天公交车上刷科技新闻,要是能主动把新闻整理好发送给我多好,于是撸起袖子就是干,搞了一个科技新闻爬虫。可以设置固定的时间去爬去,还可以自己写一些算法去筛选自己想要的新闻,代码简单,没有使用复杂的库,连bs都没用上。代码实现:#请求readhubdef readhubRequest(url, params, head原创 2020-07-23 10:11:52 · 504 阅读 · 0 评论 -
python自动化的使用
python实现发送邮件,巡检线上运行状态文章出自我的博客:huhansome的博客背景之前在某公司,发现测试人员每天固定时间点都要发一些巡检报告,有些时间点很早,并且感觉时时都要知道线上情况,看着真的为他们感觉到累。于是写代码的就不安分了,这么无聊的重复性工作为啥要人来做,让代码去做不是很好吗?初窥python作为这么一门网红语言,不会真是有点说不过去。出于上面的需求,直接不管青红皂白就创建了一个python项目,虽然不知道python的相关api,但是程序思路是有的。大概思路就是写一个无限循环原创 2020-07-23 10:10:52 · 239 阅读 · 0 评论 -
可选绑定、guard else weak unowned
swift的可选绑定和guard的用法文章出自我的博客:huhansome的博客这几个关键字放一起也是醉了,本来想放到上一篇一起,想了想放哪里好像都一样。主要是去了解一下这些语句(关键字)的作用以及使用场景及优势。func sayHello(name:String?) { if name == nil { print("姓名是空的") } else { print("hello world" + " " + name!) }}sayHello原创 2020-07-23 10:09:53 · 239 阅读 · 0 评论 -
swift 常用高阶函数
swift 常用高阶函数swift的高阶函数怎么使用?什么是高阶函数文章出自我的博客:huhansome的博客mapvar arr = [1, 2, 3]//map函数是有返回值的,想要arr里面的值map过去需要arr重新接收新值arr.map { (a : Int) -> Int in return a * 2}//这种写法只是尾随闭包的简写。。arr = arr.map { $0 * 2}flatMap//floatMap函数可以降维var arr..原创 2020-07-23 10:07:03 · 316 阅读 · 0 评论 -
swift异常处理,swift的try catch的正确使用姿势
swift异常处理,swift的try catch的正确使用姿势看完这篇精通swift的try catch文章出自我的博客:huhansome的博客程序健壮性很重要,要是一直在崩溃,给用户的印象真的是致命的。好在有异常捕获,有一些救治措施。看代码,学习swift的异常捕获enum MyError : Error { case empty(String) case tooBig(String)}class Student:NSObject { var name:St..原创 2020-07-23 10:05:54 · 8157 阅读 · 0 评论 -
swift构造器,swift类的初始化方法
swift构造器,swift类的初始化方法swift类的初始化,swift init方法最全面的介绍文章出自我的个人博客:huhansome的博客swift里面会经常看到申明属性申明成可选类型,其实这和构造器也是有关系的。(申明变量时,用?申明可选值类型的话,在之后使用时都需要显式的写上解包操作,而用!申明时,之后使用会默认隐式的加上!解包,两者申明之后不初始化都会默认一个nil值)构造器class Student:NSObject { var name:String? var原创 2020-07-23 10:03:39 · 481 阅读 · 0 评论 -
属于自己的刷新控件
属于自己的刷新控件记得在我这篇文章中我说过自己要做一个属于自己的刷新控件,为了生动,自己开发中快速方便使用,而且还不依赖人家三方库。之前也说过由于公司环境原因,可能并不会有那么多时间去做所谓与公司无关的事,不过幸运的是在上周四的时候就完成了,只是还有一些细节需要去修改而已。在这里就分享一下心得吧。在分享之前先看看效果,说起来惭愧,现目前还是只有弹性波浪动画下拉刷新,之前说的目的是要集成多款各式各样的原创 2017-04-25 13:58:56 · 347 阅读 · 0 评论 -
近来总结
近来总结又是好久没写文章了,不能这样,感觉惰性真的会吞噬人的斗志。距离上篇文章又时隔十天了,不过话说回来,这段时间事情还是很多的,有时候就感觉在这么一个很小的外包公司怎么去提升自己的技术积累(小公司会不断的加工作,去看看技术贴、逛一逛GitHub被看见都会被认为是在搞其他的,反正不是在xcode界面干公司项目,就会觉得你闲下来了),以至于绝大多数时间都是在各种业务间穿梭。不过近来在GitHub上发现原创 2017-04-18 16:10:40 · 352 阅读 · 0 评论 -
iOS崩溃日志搜集
iOS崩溃日志搜集开发一款APP用户体验可能显得非常重要,想想要是一款APP老是闪退,bug层出不穷,那得多难受,用户肯定会直接卸载掉的。那么为了开发出更加健壮的程序,我们大致有以下方法:充分考虑系统版本之间的差异codeReview(包括代码里面多写些安全代码)崩溃日志搜集,更正说到日志搜集,可以说现在市面上真的是百花齐放百家争鸣,这里就不一一细说啦,其实apple SDK提供了异常捕获的原创 2017-03-15 17:11:17 · 607 阅读 · 0 评论 -
Xcode miss file
Xcode warning: Missing file: /Users/xxxx is missing from working copy相信在开发中,经常会发现这样的警告,而且一出现就是大量的,造成原因:更改了项目目录文件名(或者修改了项目名),造成了文件的路径改变。总结了一些解决办法:打开Xcode->Prefrences->Source Control 去掉Enable Source C翻译 2017-03-03 10:09:10 · 398 阅读 · 0 评论 -
Xcode项目名修改
Xcode项目名修改 相信多数人和我一样,看到这样的需求都醉了,做的好好的项目,正庆祝的时候老大说需要改个名。说到改名啊,,提心吊胆啊,说不定改了之后就钻出来几十个错误几百个警告,该如何是好。作为更改过多次项目名的我来说,该项目名不过就两分钟而已,没错就是两分钟。 两分钟搞定Xcode项目名修改 本次改名Xcode版本是最新的8.2.1,只要Xcode版本不要相差太大,操作基本上都一样的。废话不多说原创 2017-03-08 18:02:35 · 638 阅读 · 0 评论 -
IM之Socket
IM之Socket说到即时通讯,就会让人想到socket,然而现在三方的即时通讯SDK也是数不胜数。本文就简单说一下github上非常火热的CocoaAsyncSocket,我们会利用这个库来实现消息(文本消息,图片消息,以及数据流)发送接收。CocoaAsyncSocket之前这个库分两种版本(GCD版 和RunLoop版,现在RunLoop版已经去掉了,可能是因为功能有些重复吧)。 在讨论s原创 2017-03-20 18:13:11 · 2134 阅读 · 0 评论 -
iOS开发常用的加密技术
iOS开发常用的加密技术我胡汉三又回来了啦!时隔几月没有更博客了,我自己都受不鸟自己啦。在这几个月里经历了很多杂七杂八的事儿,不过话说回来,再怎么忙都不应该中断学习的步伐,再怎么忙都不能成为博客停更的理由。好吧就检讨到这里。开始进入正题 —> 一些常用的加密介绍 在iOS开发中(应该说在所有的开发中),数据的安全性都是非常重要的。下面就简单的说一下数据加密的一些方式。MD2 、MD3、 MD4 、M原创 2017-03-07 14:30:13 · 391 阅读 · 0 评论 -
iOS多线程——锁
iOS多线程——锁在开发中,多线程编程是必不可少的,多线程的线程安全也是要考虑的,可能最有印象的应该还是atomic属性吧,其次就是GCD的dispatch_semaphore。于是就总结了一下,iOS开发中的线程安全措施。大致有如下几种:atomic属性@synchronize(对象) NSLock 需要提一下,lock、unlock方法必须在一个线程调用,这里说的很清楚NSRecursi原创 2017-03-27 10:05:11 · 1441 阅读 · 0 评论 -
runtime交换方法的正确姿势
runtime交换方法的正确姿势说到Objective-C大家就会想到黑魔法runtime,(不知道runtime是什么的看这里,runtime是开源的,源码在这里),本文主要讲解如何利用runtime正确的交换方法,将会提到两种方式去交换,以及我们在什么情况下改怎么去用。我们知道OC的方法到了runtime就被体现成结构体struct objc_method { SEL method_na翻译 2017-04-07 18:27:11 · 895 阅读 · 0 评论 -
runtime交换方法的正确姿势
runtime交换方法的正确姿势说到Objective-C大家就会想到黑魔法runtime,(不知道runtime是什么的看这里,runtime是开源的,源码在这里),本文主要讲解如何利用runtime正确的交换方法,将会提到两种方式去交换,以及我们在什么情况下改怎么去用。我们知道OC的方法到了runtime就被体现成结构体struct objc_method { SEL method_na翻译 2017-04-07 18:27:39 · 543 阅读 · 0 评论 -
基于MQTT协议的消息传输
基于MQTT协议的消息传输为什么MQTT?之前刚写了一篇关于socket的文章,为什么又来一个MQTT?因为MQTT协议就是socket接口实现的啊(socket和MQTT只是层级不一样而已),并且感觉发布/订阅模式非常棒,于是就想把MQTT也整明白些,做到在需要的时候选择合理的方式去实现。MQTT的一些理解MQTT(Message Queuing Telemetry Transport,消息队列遥原创 2017-03-29 18:00:35 · 9553 阅读 · 1 评论 -
CoreData之MagicalRecord源码解读
CoreData之MagicalRecord源码解读CoreData 与SQLite 说到数据持久化,很难让人不想到又爱又恨的CoreData,说到CoreData可能大多数人就是想到的繁琐,最直接的原因就是使用CoreData涉及的类特别多,再想想SQLite 就没有那么多的对象。要是说到这两者怎么选择的话,我还是会选择CoreData,原因有以下几点: - CoreData是苹果官方推荐的持久原创 2017-03-14 16:27:54 · 636 阅读 · 0 评论 -
iOS自定义转场动画
如果你在开发中遇到需求,需要实现各种各样的转场动画,那么你可以看看这篇文章。当然,本文并没有实现各种各样的花式转场动画,而是实现了一种思路,抛砖引玉,希望你在看了本文之后能举一反三,随心所欲的定制自己喜欢的转场动画!(注意这里讲的实现仅仅支持iOS7 or later)好了,效果也看到了(好像很丑~~)废话不多说,开撸!自定义转场动画我们都知道,苹果在转场动画给了我们自己实现的机会,那么在自己实现的原创 2016-08-23 14:50:21 · 307 阅读 · 0 评论