iOS 开发
文章平均质量分 50
like学
iOS 开发者
展开
-
python argparse 实际用法的一些理解
python argparse 的简单用法前言iOS 项目使用了组件化开发,团队协作使得出现了大量的分支,因需求问题分支合并到develop 的时间不可控制.功能上线后没有及时删除分支.日积月累造成大量的冗余分支.最近研究使用python 来删除已经合并到develop并且最后一次提交大于180天的分支.其中使用到了外部参数的模块.开始使用的是 sys.argv 虽然满足外部传入天数要求,但是后续不好扩展. 所以使用 argparse 来处理.开始有文档介绍argparse.但是对新手来说感觉还是原创 2021-07-25 15:32:30 · 346 阅读 · 0 评论 -
VSCode Python3 三方库
Mac VSCode python3 配置 setting默认已经安装VSCode背景操作默认已经安装VSCode网上已经有好多教程安装使用Python3,这里只记录python3 的配置问题背景从想学Python 到实际操刀来,并不像想的那么简单,单纯的调用 print (“Hello Python”) 没有任何意义.Mac 默认是Python2.7 版本. 但是对于新学者都想一步到位.学习最新的python3.但是应该怎么样做呢, 有的人会说,可以升级到最新的3.5左右. 但是python 提供原创 2021-06-04 18:29:58 · 827 阅读 · 1 评论 -
Shell解释器
调用解释器执行顾名思义,就是把脚本的路径传入解释器中去执行:sh test.sh或者bash test.sh这两者略有区别,我没有整理过完整的差异,但至少对于 echo 命令来说,以下命令在两种解释器下得到的结果是不一样的:echo -e “hello\nworld”bash 会正确的将 \n 解释为换行符,sh 则不能。个人建议统一使用 bash 即可利用解释器执行 She...原创 2018-10-15 10:27:05 · 1942 阅读 · 0 评论 -
初识 __attribute__用法
最近在看项目中的网络封装,看到里面的方法后面有个 -(void)setupViewModel NS_REQUIRES_SUPER; 而这个宏内部是 #define NS_REQUIRES_SUPER _ _ attribute__ ((objc_requires_super))查看了一下才知道这是一种提示语,表示子类继承这个父类,需要重写这个方法,如果不写会有提示,...原创 2018-03-28 13:53:56 · 1988 阅读 · 0 评论 -
OC get set 方法理解 get set方法不能同时重写
最近在了解Xcode 对 @property 所做的事情 我们都知道用@property 声明的属性 Xcode 会帮我们生成get set 方法,有时我们根据实际需要会重写get 或者set 方法.都是可以的.但是我们get set 方法都重写,就会报错 原因是: @property 已经帮我们重写了get set 方法 ,而现在我们又全部重写了get set 方法.导致Xcode 认为...原创 2018-03-15 11:22:22 · 5989 阅读 · 0 评论 -
shell 脚本命令 : 重定向
最近在看shell 脚本命令 : 重定向 :即重新改变输入输出的来源希望想将在终端输出的信息保存到文件,直接在命令后面加上> filename即可希望想将在终端输出的信息保存到文件,直接在命令后面加上> filename即可echo “字符串” > test.txtecho “字符串” | tee test.txtShell允许打开至多10个文件,文件描述...原创 2018-03-14 17:59:46 · 2139 阅读 · 1 评论 -
iOS 越狱脱壳Clutch 问题
最近在学习iOS 越狱问题,使用Clutch 脱壳生产.ipa 文件.取出Mach-o 使用class-dump 工具导出头文件报错可能原因是: - 此APP可能是混编,OC swift需要下载最新的class-dump 放到Mac下: /usr/local/bin$cd /usr/local/bin$open ./ 替换以前原有的执行命令: $class-dump原创 2018-01-29 17:23:56 · 1602 阅读 · 0 评论 -
iOS 9.3.3中使用 dumpdecrypted Killed: 9
iOS 9.3.3中使用 dumpdecrypted Killed: 9前提: Mac已经登录上 iPhone ,我用的账号是root 有最高权限 还有mobile 账户,权限没有root高这里使用的是iFunBox可视化工具 查看iPhone 文件一开始在iPhone [ /var/root/ ] 放入了dumpdecrypted.dylib 库 执行 cd 到对用的文件夹下:原创 2018-01-29 17:02:11 · 2491 阅读 · 0 评论 -
git fork 的使用理解(git fetch 拉取而不合并)
fork 相当于是从主分支是clone 一份代码(其实是一个地址)和主项目的代码是一样的$ cd _ // 切换到你想要的文件夹下$ git clone _ //克隆你项目从地址中$ git branch // 查看你所有分支$ git checkout _ // 切换到别的分支,若没有回创建一个新的分支一些主要的命令:$ git remot...原创 2017-12-06 17:21:00 · 3793 阅读 · 0 评论 -
Xcode编译 library not found for -lXXXX
最近使用Xcode9 打开代码发现 Realm 三方库报错,于是就更新到2.8.3 版本处理,等待了老半天(最后还是使用移动数据更新成功的,差不多50多M)。之后再次编译结果就是这样的提示了: ld: library not found for -lrealm-ios clang: error: linker command failed with exit code 1 (use -v to原创 2017-12-06 14:22:53 · 5601 阅读 · 0 评论 -
iOS KVO (验证Object-C实现流程)
前言在Object-C中有一种观察者模式,即是Key-Value-Observing(KVO)。利用KVO可以很容易实现视图组件和数据模型的分离。当数据模型的值改变时,会马上触发视图组件,更新视图组件。在Objc中要实现KVO,必须实现NSKeyValueObServing协议,所幸的是NSObject已经实现该协议,也就是说,几乎所有的Objc对象都可以使用KVO。本质是:重写set...原创 2018-09-25 18:19:27 · 419 阅读 · 0 评论 -
iOS 开发 UITableView tableHeaderView 自动布局问题Masonry
背景:在实际开发中,UI布局我们现在基本上都是使用Masonry.但是在tableHeaderView上使用自动布局有点麻烦.有时候tableHeaderView有多个子view. 有的人会把子view 的高度依次相加给 tableHeaderView.解决:直接放代码 UIView *header = [[UIView alloc] init]; // 2个子视图 (UIV...原创 2019-10-10 19:15:47 · 2506 阅读 · 0 评论 -
DYLD_PRINT_STATISTICS 不生效问题
value:DYLD_PRINT_STATISTICS key:1这个设置是在XCode8以后,并且是在iOS 10 以后才生效的原创 2019-02-19 17:02:25 · 3573 阅读 · 0 评论 -
hexo 部署到GitHub上遇到问题
每次更新文章需要做:$ hexo clean // 清除$ hexo g (generate)$ hexo d (deploy)部署到github 上 需要配置 _config.yml 找到下面的内容# Deployment## Docs: http://hexo.io/docs/deployment.htmldeploy: type:修改:# Deployment#...原创 2018-11-28 15:56:58 · 2127 阅读 · 0 评论 -
Hexo搭建Github静态博客
了解HexoHexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。安装前提安装 Hexo 相当简单。然而在安装前,您必须检查电脑中是否已安装下列应用程序:GitNode.js如果您的电脑中已经安装上述必备程序,那么恭喜您!接下来只需要使用 npm 即可完成 Hexo 的安装。$ npm...原创 2018-11-28 15:52:17 · 378 阅读 · 0 评论 -
Hexo语言不生效问题
hexo 的主题配置使用的是NexT,但是设置的简体中文不显示安装NexTHexo 安装主题的方式非常简单,只需要将主题文件拷贝至站点目录的 themes 目录下, 然后修改下配置文件即可。具体到 NexT 来说,安装步骤如下。$ cd <hexo的目录>$ git clone https://github.com/iissnan/hexo-theme-next themes/...原创 2018-11-29 15:12:56 · 12639 阅读 · 10 评论 -
iOS UTC日期字符串格式化
有时候服务端返给的时间格式 为2018-11-20T13:09:43.589Z我们需要展示正常的时间格式2018-11-20 21:09:44- (NSString *)getTimeToStr:(NSString *)timeStr { NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [...原创 2018-11-22 20:51:58 · 1174 阅读 · 0 评论 -
iOS越狱之Mac登录iPhone
前言随着iOS系统的逐步开放和与Android平台越来越多的相似性,很多以前只能通过越狱才可以使用的应用在现在的iOS系统中已经有了很多,所以越狱对于目前iOS用户来说,重要性比起以前有了很大的降低,很多用户都已经不再考虑iOS的越狱了。那么作为iOS开发者,有没必要了解越狱,越狱完之后我们能干嘛?答案显然是肯定的。什么是越狱iOS是相对比较封闭的操作系统,用户和开发者所拥有的权限(自由)...原创 2018-11-21 11:55:31 · 1086 阅读 · 0 评论 -
正则表达式30分钟入门
前言正则表达式(英语:Regular Expression,在代码中常简写为regex、regexp或RE),又称正规表示式、正规表示法、正规表达式、规则表达式、常规表示法,是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些匹配某个模式的文本。(来自维基百科)入门假设你在一篇英文小说里查找hi,你...原创 2018-11-08 14:32:22 · 2267 阅读 · 2 评论 -
category 方法调用的顺序
一、category重写主类方法在项目中我们经常会使用category(类别)来为已有的类添加新的方法。我们知道,如果我们重写原有类的方法,则类别的方法会替换掉原有类的方法,并且类别中会有警告的信息 原方法失效,分类方法生效的原理是什么?这里看一下类的初始化,首先oc是动态语言,建立在runtime 的基础上,同样类的初始化也是动态的,根类NSObject 的+load 和+initilize两原创 2017-11-16 20:18:01 · 2934 阅读 · 0 评论 -
抢红包算法问题 swift 3.0
抢红包算法的讨论网上也太多了,这里不讨论好坏问题.这里只是一个实现也是网上的一个思路(一个红包发出来,其实份额已经分配好了.) 问题: 第一个人抢的红包 不会超过 总钱数/总人数*2 决绝: 最后跑下洗牌算法-链接// ************** 抢红包问题 **********************// 区间的随机值func getRandomQuJian(startIndex:Int原创 2017-06-09 16:32:08 · 572 阅读 · 0 评论 -
简单洗牌算法 swift3.0
Knuth 和Durstenfeld 在Fisher 等人的基础上对算法进行了改进。 每次从未处理的数据中随机取出一个数字,然后把该数字放在数组的尾部,即数组尾部存放的是已经处理过的数字 。这是一个原地打乱顺序的算法,算法时间复杂度也从Fisher算法的 O ( n 2 )提升到了 O ( n )。//************* 洗牌算法 ************// [startIndex en原创 2017-06-09 16:18:45 · 746 阅读 · 0 评论 -
iOS 转场动画UIViewControllerTransitioningDelegate代理
最近在看转场动画问题,心中有些疑惑就查了一些信息.从VC1 present VC2 VC1 就充当presenting view controller VC2就是presented view controller UIViewControllerTransitioningDelegate 方法:(nullable id )animationControllerForPresentedCon原创 2017-04-21 18:10:53 · 2167 阅读 · 0 评论 -
present 和Dismiss
最近用到了模态视图,简单了解了下. 从VC1 present VC2 ,在从VC2 present VC3 VC1 就充当presenting view controller VC2就是presented view controller 重点: 如果:从VC1 present VC2 ,在从VC2 present VC3 在VC2 中dismiss 其实消失的是VC3 如果只有:从VC1原创 2017-04-21 15:44:44 · 957 阅读 · 1 评论 -
.rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/rubygems/...:in `require':
在生成pod模板库是发现一个错误导致模板库生成错误: .rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require’: cannot load such file – colored2 (LoadError)输入上面提示的colored2的两条gem命令即可解决问题 $ sudo原创 2017-04-21 12:03:23 · 2393 阅读 · 1 评论 -
git 忽略文件问题.xcuserstate
终端git 中Commit的时候.xcuserstate这个文件几秒钟更新一次, 用.gitignore无效. 于是, 在终端中输入:$ git rm –cahce XXX.xcworkspace/xcuserdata/XXX.xcuserdatad/UserInterfaceState.xcuserstate$ git commit -m ” 删除…”$ git push原创 2017-04-14 09:38:00 · 442 阅读 · 0 评论 -
git push 报 403 问题
使用终端 git push 首次项目到远程仓库报403 错误问题.仔细检查https:// 地址没有问题.地址改成SSH地址就可以成功.但是这不是想要的结果.就是想用https 可能是因为Mac 保存了以前的密码导致报403错误.解决方法: 使用XCode push 项目代码 在->source control -> push 输入你的https地址 和密码 就可以了.. 在回到终端提交原创 2017-04-13 15:42:40 · 1155 阅读 · 0 评论 -
va_start 和 va_end的理解
项目中使用FMDB数据库,看代码时看到了 va_start 和 va_end .就了解了一下void fun(…); void fun(parm_list,…);在C中,当我们无法列出传递函数的所有实参的类型和数目时,可以用省略号指定参数表函数参数的传递原理 函数参数是以数据结构:栈的形式存取,从右至左入栈。 首先是参数的内存存放格式:参数存放在内存的堆栈段中,在执行函数的时候,从最后一个开始转载 2016-10-29 16:59:22 · 476 阅读 · 0 评论 -
iOS 系统相机长按拍照问题
最近在调用系统相机上传图片,发现拍照只能长按才可以,google了许多都没发现有遇到过的.自己排查了好长时间.发现是自己项目中的问题. 这是正常的代码:项目中重写了一个button 的类别 ,导致拍照时的Button事件出现问题.把button类别去掉或者修改就可以了pragma mark 使用相机 begain//相机 begain-(void)selectHeadimage{[self tak原创 2016-10-27 17:10:11 · 1026 阅读 · 0 评论 -
ruby 更新到 2.3.1
最近xcode升级到Xcode8 但cocoapods更新不了最新的库.一直在升级ruby 但是老是失败.发现一个最大的原因是mac系统不是最新的 .要升级到mac os 10.12 我的安装源本来是淘宝的镜像 https://ruby.taobao.org 结果怎么升级 安装都不好使。据说 Xcode8 以后需要Ruby 版本在2.2以上? 我的版本还是2.0呢。这得想办法升级啊,我用RVM原创 2016-10-22 17:31:07 · 2529 阅读 · 1 评论 -
iOS SQLite 解密 SQLCipher
iOS SQLite解密之SQLCipher 官方集成文档:https://www.zetetic.net/sqlcipher/ios-tutorial SQLCipher:https://github.com/sqlcipher/sqlcipher解密数据库 一、编译 1. 这个步骤可参考文章:(http://www.cnblogs.com/eileenleung/p/5456907.转载 2016-08-19 09:58:15 · 902 阅读 · 0 评论 -
iOS 代理修饰词weak 不用assgin
昨天被一个bug 坑了下。先描述下场景: 首页列表页点进去是详情,里面有个精确到秒的倒计时,并且滑动的时候倒计时也在走,就把它放在RunLoop 里面了。看到详情后又返回首页,之后倒计时结束要走个代理方法。突然就崩溃。。。。Cannot form weak reference to instance (0x10ef21e00) of class JieBanDetailVC. It is poss原创 2017-05-20 18:20:59 · 972 阅读 · 0 评论 -
UIScrollView使用masonry布局
UIScrollView使用masonry布局项目使用masonry来布局UI, 但在使用UIScrollView的时候遇到一些问题.记录下来避免大家掉坑masonry 三种使用 mas_make,mas_update,mas_remake 关于masonry的使用就不过多的讲解了.可以参考 —— [ githup masonry使用 ]代码块例如: [self.view add原创 2017-01-10 16:44:54 · 3239 阅读 · 0 评论 -
swift (3.3)UICollectionView 的 SectionHeader问题
(SectionHeaderView 不显示问题) 自己在写UICollectionView的时候 想设置SectionHeaderView的时候。怎么都不显示,layout 的布局也设置了,包括注册 sectionHeaderView collectionView.register(YMCollectionHeaderView.self, forSupplementaryViewOfKind原创 2017-11-03 15:48:00 · 2557 阅读 · 0 评论 -
关于swift(3.3) 链式编程的理解
这是一个controller ,废话不多说直接上代码import UIKitimport SnapKitprotocol ViewChainable {}class TestPushVC: UIViewController { override func viewDidLoad() { super.viewDidLoad() self.view.backg原创 2017-11-02 11:35:15 · 1037 阅读 · 0 评论 -
swift 3.0 UITableView 懒加载写法(lazy)
懒加载的写法不止这一个,但是比较喜欢这种写法,里面可以写好多设置 lazy var tab: UITableView? = { let tempTableView = UITableView (frame: self.view.bounds, style:.plain) tempTableView.delegate = self tempTable原创 2017-11-01 15:20:57 · 2873 阅读 · 0 评论 -
Mac 下配置阿里云服务器
最近阿里云服务器在搞活动9.9元半年.就买来配置玩下. 按照购买流程 公共镜像:选择第一个CentOs,<建议使用稍低版本 ,CentOs使用比较多些> 之后会有一个公网IP 和私有IP, 这里我们使用公网IP .下面2种方式都可以配置服务器,建议使用21. 在购买设置界面找到->实例详情 -> 远程连接 会进入你的购买服务器操作系统 输入账号 密码 2. 使用软件CyberDuck原创 2017-08-30 18:39:44 · 1560 阅读 · 0 评论 -
Runtime之动态获取属性列表
前一段时间使用Runtime 觉得非常有意思,一直没有时间整理. 现在被问了一些Runtime的东西,所以在这里记录下. 这里用一个场景来说明Runtime的属性列表的使用:归档解档.正常情况下你要完成一个对象(数据model)的归档解档.你要在数据model的类继承NSCoding 协议.// Copyright © 2017年 like学. All rights reserved.//原创 2017-09-15 15:07:16 · 438 阅读 · 0 评论 -
Runtime 运行时的方法交换
最近看了一个Runtime 的东西,”方法欺骗”(IMP 方法的交换). 使用好了非常厉害. NSString * str = @"http://baidu.com李"; NSURL * url = [NSURL URLWithString:str]; NSLog(@"1----%@",url);打印:2017-09-14 17:45:41.777 Runtime[4402:原创 2017-09-14 18:06:24 · 464 阅读 · 1 评论 -
Mac系统10.11(10.12)之后/usr/bin 不能拷贝进去class-dump该怎么办
最近在研究class-dump 反编译软件,发现安装的时候有些问题. /us/bin 没有权限 . 但文档说明需要把class-dump文件放进去但是可以在~/.bash_profile 环境配置文件下添加 “指引”路径.在终端下,新建一个文件夹把 class-dump 放进去 如终端创建: $mkdir ~/bin2.打开~/.bash_profile文件,配置环境变量 (双击打开就可以)转载 2017-08-10 17:07:19 · 2361 阅读 · 0 评论