移动开发
文章平均质量分 51
华仔的倔强
这个社会只有没有能力的人,才会抱怨。
展开
-
iOS之class方法和object_getClass方法的区别
源码分析// 类方法 返回自身+ (Class)class { return self;}// 实例方法 查找isa- (Class)class { return object_getClass(self);}Class object_getClass(id obj){ if (obj) return obj->getIsa(); else return Nil;}inline Class objc_object::getIsa() {原创 2021-03-25 19:54:50 · 1081 阅读 · 0 评论 -
OC项目引入swift第三方库(cocoapods)需要注意的问题
1、Podfile中添加 use_frameworks!2、swift第三方库指定swift版本4、在.h或者.m文件使用swift库需要使用@import原创 2021-03-25 18:22:14 · 1997 阅读 · 1 评论 -
组件化---创建私有Spec Repo管理项目公共组件库(下)
1、更新组件版本1、在我们之前的公共组件库添加一些组件,然后打上tag提交到git仓库。#提交到远程仓库sy@MacBook-Pro ~/D/HSPodLib> git add .sy@MacBook-Pro ~/D/HSPodLib>git commit -m '添加公共组件库'sy@MacBook-Pro ~/D/HSPodLib> git push origin master#设置tagsy@MacBook-Pro ~/D/HSPodLib>git tag -原创 2021-01-16 12:02:49 · 241 阅读 · 0 评论 -
iOS fastLane 打包上传到AppStore
1、安装 Xcode command line tools: xcode-select —install2、安装fastlane brew install fastlane检查一下是否安装成功 fastlane --version3、fastlane 初始化首先需要cd到你的工程目录然后执行以下代码fastlane init4、初始化选项我选择是第3项在此期间需要输入苹果开发者账号和密码然后一直Enter就可以了。5、打包上传到AppStorefastlane rel原创 2020-11-18 11:38:28 · 562 阅读 · 0 评论 -
iOS fastlane打包上传蒲公英
1、安装 Xcode command line tools: xcode-select —install2、安装fastlane brew install fastlane检查一下是否安装成功fastlane --version3、fastlane 初始化首先需要cd到你的工程目录然后执行以下代码fastlane init4、初始化选项我选择是第4项一直按Enter。5、fastfile 文件配置default_platform(:ios)platform :ios原创 2020-11-18 09:56:31 · 303 阅读 · 0 评论 -
mac 上的jenkins 离线处理方法
当jenkins运行出现离线状态的时候,处理一下操作:1、vim/root/.jenkins/updates/default.json2 、将 "connectionCheckUrl":"http://www.google.com/" 改为 "connectionCheckUrl":"http://www.baidu.com/"3、 重启jenkins如果重启过后还是不行,尝试1、vim/root/.jenkins/hudson.model.UpdateCenter.xml2....原创 2020-11-03 11:35:32 · 297 阅读 · 0 评论 -
AFN 中的 Method swizzling
最终在研究AFN3.0 源码中无意发现了 “Method swizzling”。AFN3.0 源码中知识还是值得研究的。Method swizzling是什么?Method Swizzling是objective-c中的黑魔法,算是runtime中的一种实战使用模式,它允许我们动态的替换方法,实现Hook功能。Method swizzling可以干什么?Method swizzling字面意思就是方法交换。那它可以运用在那些场景呢?按钮的重复点击问题界面点击次数…Method Swizz原创 2020-07-10 14:06:05 · 253 阅读 · 0 评论 -
pod install和 pod update的区别
pod install该命令是在你第一次在项目中获取库的时候使用,并且每次对的Podfile文件编辑的时候(添加、修改、删除)使用。每次运行pod install命令后,都会下载安装新的库,并且会修改Podfile.lock文件中记录。Podfile.lock文件的作用就是追踪和锁定这些苦的版本的。运行pod install后,它只是仅仅安装Podfile文件中的指定版本的库而已。并不会去...原创 2020-03-22 13:21:33 · 861 阅读 · 0 评论 -
iOS打包Framework
1、创建Framework2、创建需要集成打包Framework中的文件。比如Bundle、Framework、.a、.h/.m3、配置参数将Mach-O Type设为Static LibraryBuild Active Architecture Only修改为NOiOS Deployment Target 静态库需要支持的最低版本,自己选择将你需要公开的头文件,放到Publi...原创 2020-03-22 12:36:52 · 1181 阅读 · 0 评论 -
iOS库的.a与.framework区别
摘自添加链接描述首先要说的.a 和.framework 都是库文件。什么是库?库是共享的代码。一般分为静态库和动态库。静态库和动态库区别?静态库:链接器链接的时候会完整拷贝到可执行文件中,如果被多次使用,就会多次被拷贝。那么会造成冗余。动态库:链接是不会复制,程序运行时由系统加载到内存,供程序使用。它只会加载一次,多个程序共用,节省资源。ios的静态库是:.a和.framework...原创 2020-03-21 11:35:02 · 248 阅读 · 0 评论 -
Other Linker Flags做了什么?
Other Linker Flags做了什么?今天在 研究静态库的时候,发现Other Linker Flags需要加上-Objc。就查阅资料一波。Other Linker Flags是干嘛的?Other Linker Flags到底是什么?实际就是ld命令除了默认参数以外的其他参数。ld命令实现的是链接器的工作。也许有的人不清楚链接器是什么?一个程序从简单的代码到可执行的文件,大致需要...原创 2020-03-21 11:21:53 · 291 阅读 · 0 评论 -
iOS .a文件的打包过程
废话不多说。直接干。1、新建一个工程,选择Static Library2、文件参数配置"Build Active Architecture Only"设置NO。Yes No的区别:Yes,是只编译当前Architecture版本,是为了编译速度加快。一般我们是在Debug下设置的。No,系统会编译所有的Architecture版本。Architecture 代表架构。armv6:...原创 2020-03-20 15:05:55 · 781 阅读 · 0 评论 -
lipo命令解析
lipo是管理Fat File的工具,可以查看cpu架构,提取特定架构,整合和拆分库文件。lipo -info xxxx.framework/xxxx或/xxxx.a查看信息,支持的cpu架构列表lipo -create xxxx xxxx -output xxxx整合成Fat文件lipo xxxx -thin cpu(armv7/arm64等) -output xxxx提取特定的cp...原创 2020-03-20 14:24:46 · 611 阅读 · 0 评论 -
MailCore2 过程中的问题
最近我在MailCore2的时候,获取网易的邮箱的INBOX内容的时候,一直报这个错误。Error Domain=MCOErrorDomain Code=11 “The requested folder does not exist. Folder selection failed” UserInfo={NSLocalizedDescription=The requested folder d...原创 2020-03-20 10:09:20 · 537 阅读 · 0 评论 -
__unsafe_unretained的使用
__unsafe_unretained的使用我们一般很少用到__unsafe_unretained修饰词。但是在开源项目就会见到。在介绍这个__unsafe_unretained之前,我们先来介绍下__weak。__weak 表示的是对象的弱引用关系,__weak修饰的对象被释放后,指向对象的指针会自动置为空,也就是指向nil。__unsafe_unretained表示的是弱引用关系,__...原创 2020-03-19 17:32:10 · 1143 阅读 · 0 评论 -
研究SDWebImage原理重新认识NSMapTable
NSMutableDictionary分析我们都知道NSMutableDictionary/NSMutableArray,也会经常使用。大部分都知道NSMutableDictionary/NSMutableArray对里面的对象是强引用的。我们先看官方文档怎么说?- (void)setObject:(ObjectType)anObject forKey:(KeyType <NSCopy...原创 2020-03-19 15:16:15 · 361 阅读 · 0 评论 -
Xcode快捷键汇总
Xcode快捷键汇总文件Command + N: 新建文件Command + Ctrl + N 新建空文件Command + Shift + N 新建项目Command + O 打开Command + S 保存Command + Alt + S 保存所有文件Command + Shift + S 另存为Command + W 关闭窗口Command + Q 退出XcodeCo...原创 2020-03-19 11:56:46 · 245 阅读 · 0 评论 -
iOS压缩图片
这里我用的二分法进行图片压缩的#pragma mark - 图片压缩- (NSData *)resetSizeOfImageData:(UIImage *)sourceImage maxSize:(NSInteger)maxSize { //先判断当前质量是否满足要求,不满足再进行压缩 __block NSData *finallImageData = UIImageJPEGR...原创 2020-03-19 11:05:19 · 247 阅读 · 0 评论 -
Flutter 拍照或选择照片
一般的项目中,我们都会用到拍照或者使用照片,这里我们就介绍下flutter的插件。image_picker在pubspec.yaml中添加依赖dependencies:image_picker: ^0.6.2+3You can install packages from the command line:with Flutter:$ flutter pub get对于iOS的开发者...原创 2020-01-08 10:54:01 · 676 阅读 · 0 评论 -
Flutter 实现圆角裁剪
通常情况下,我们都知道使用Container widget 的BoxDecoration可以实现圆角效果。但是今天我遇到了一种情况:就是Container 需要背景颜色,又需要进行圆角。我尝试用Container进行圆角与设置背景颜色。具体代码如下:Container( height: 20, padding: EdgeInsets.fromLTRB(10, 0, 10,...原创 2019-12-30 15:35:24 · 2515 阅读 · 2 评论 -
Flutter | 使用BottomNavigationBar快速构建底部导航
前言Google推出flutter这样一个新的高性能跨平台(Android,ios)快速开发框架之后,被业界许多开发者所关注。我接触了flutter之后,确实发现它的一些优越性。今天我来给大家分享的是底部导航功能的实现。废话不多说开工啦。学到知识?1.拆分组件2.构建简单布局3.创建底部导航最终效果如下:这也是我刚开始接触的,学到的知识,如有错误,请指教。搭建布局1. 绘制布...原创 2019-12-23 15:54:05 · 324 阅读 · 0 评论 -
修改 UITabBar的背景颜色
今天为了适配 iOS13的深夜模式。系统的UITabBar的背景颜色随着深夜模式变成了黑色。因此我想让其保持白色。网上找了好几种方法:1 、[[UITabBar appearance] setBackgroundImage:[UIImage imageNamed:@"tabBarBackgroundImage"]];[UITabBar appearance].translucen...原创 2019-10-28 11:32:52 · 2657 阅读 · 0 评论 -
Swift 验证码倒计时问题(后台持续计时)
今天遇到倒计时问题,需要后台也一直计时。我思考了一下,总计了两种思路。第一个思路是通过苹果自带的后台任务进行倒计时。第二种思路是记录当前进入后台的时间,以及再次进入前台的时间。计算两者的时间间隔,然后通过进入后台时刻的秒数减去这个时间间隔。就是真实的倒计时。具体代码如下:希望能帮到需要的人,也给自己记录一下。...原创 2019-09-19 14:32:49 · 1064 阅读 · 0 评论