- 博客(132)
- 收藏
- 关注
原创 iOS设置日志等级,解放控制台
背景开发中我们经常需要用到Log来调试问题,但我们也常常深受其害。开发新功能的时候,总是被一些乱七八糟的日志所干扰,找不到自己需要的日志信息。这个时候你一定想快速的屏蔽掉那些暂时不需要关心的Log。日志分级由此而生。日志分级我们可以把日志分为不同的等级,通过一个开关来控制打印哪些日志,从而屏蔽哪些暂时不关心的日志,解放控制台,让真正需要的信息干净的展示在我们面前。简单实现代码里有注释,就不再赘述了,直接使用我这套的同学,只需要创建一个头文件,按照顺序吧下面代码粘进去就行了。然后再适当的地方,调不同
2020-06-10 15:57:00 939
原创 iOS内存泄漏的检测与修复(AFNetWorking内存泄漏)
什么是内存泄漏内存泄漏就是你申请了一份内存,但是由于某种原因,程序未释放或无法释放,造成系统内存的浪费。造成内存泄漏原因是什么现在一般都是ARC环境,所以造成内存泄漏的原因主要是强引用循环,还有就是添加的一些观察者没有解除观察。如何发现内存泄露即使我们在编写程序的时候格外注意了,但还是无法100%保证我们代码没有造成内存泄漏,这时候怎么检测呢?不要慌,苹果还是很贴心的,Xcode给我买提...
2020-03-31 16:23:53 782
原创 iOS dismissViewController到指定页面或dismiss多层
项目中经常有这样的需求:A present弹出 BB present弹出 CC dismiss回到 A对数模态弹出的控制器不像push的那样,有系统的导航栏统一管理。为实现这一目的,我仔细研究了官方文档,发现了这么一句话The presenting view controller is responsible for dismissing the view controller it ...
2019-12-30 17:30:48 4302 2
原创 TableView/ScrollView嵌套问题(附demo)
先看下效果图(正常状态\上滑状态\下拉状态) 思路:1.最底下是横向滑动的ScrollView,2.然后上面添加两个可以左右切换的tableView,3.tableView头部预留一片空白作为填充, 真正的头部添加在控制器的View上,4.监听tableView的滑动, 根据偏移量执行不同的操作上滑状态:改变headerView的纵坐标, 根据头部的高度设置悬停的位置,下拉状态:改变h...
2018-03-02 14:39:27 4375 2
原创 iOS 高效开发之,自动生成数据模型文件
前几天看到一位大神封装了一套自动解析数据并生成模型文件的框架,我研究一了翻,对其进行了二次封装,使其使用更加简洁,可以一句代码生成所需要的数据模型开发者只需要下载我的项目,然后使用的你URL运行,既可自动生成数据模型,然后根据打印的路径,找到模型文件,拖进你的工程对于和关键字冲突的字段,使用的时候,自己手动改一下就行
2017-11-30 14:32:49 2892 1
原创 iOS 图片压缩----微信图片处理策略
iOS微信朋友圈图片处理策略原文链接我用代码简单的实现了一下,压缩效果还不错,在保证能看清的前提下,极大的缩小了图片大小#pragma mark - 图片/** 压缩图片*/+ (UIImage *)imageWithOriginalImage:(UIImage *)image{ // 宽高比 CGFloat ratio = image.size.width/i
2017-09-13 11:11:20 6725 1
原创 Mac 安装软件时,提示已损坏解决
"xxx.app已损坏,打不开.你应该将它移到废纸篓",并非你安装的软件已损坏,而是Mac系统的安全设置问题,因为这些应用都是破解或者汉化的,那么解决方法就是临时改变Mac系统安全设置。解决方法:修改系统配置:系统偏好设置--> 安全性与隐私。修改为 “任何来源”10.12以上系统的一般没有这个选项,打开终端,执行 sudo spctl --master-disable,再次打开...
2017-06-06 15:58:24 13872 1
原创 Cocoapods 安装(Mac OSX 10.12以后)
在系统升级到10以后,按照之前的安装步骤会出现一系列问题.接下来我们就从零开始,直到安装成功如果各位觉得啰嗦,直接打开终端,执行加粗显示的命令就OK了1.配置Ruby环境Ruby环境,OSX自带。但是如果ruby配置不对,安装Cocoapods会麻烦许多,还有版本太旧出现的问题.1.1 移除旧版gem sources --remove https://rubygem
2017-06-02 15:52:35 1430
原创 writeToFile 写入失败问题 ---字典去空值
1. 写入的必须是NSString,NSDate,NSArray,NSDictionary等基本数据类型2.写入的数据不能为自定义类型或者Null (服务器返回的字典里,有个键对应的值为Null,搞了半天写不进去)
2017-05-09 18:13:49 1932
原创 Ignoring ffi-1.12.2 because its extensions are not built. Try: gem pristine ffi --version 1.12.2
升级到maxOS Big Sur和Xcode12.3之后,执行pod install总是报错Ignoring ffi-1.12.2 because its extensions are not built. Try: gem pristine ffi --version 1.12.2提示我们执行gem pristine ffi --version 1.12.2执行之后又会报错ERROR: While executing gem ... (Gem::FilePermissionError)
2021-01-21 10:36:11 6896 8
原创 Homebrew安装报错curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused
curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused最近在通过命 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"安装Homebrew的时候总是出错,提示curl: (7) Failed to connect to raw.githubu
2020-10-20 12:39:12 432
原创 FBRetainCycleDetector深入解析
FBRetainCycleDetector是FaceBook开源的用于检测强引用循环的工具。默认是在DEBUG环境中启用,当然你也可以通过设置RETAIN_CYCLE_DETECTOR_ENABLED以始终开启。需要注意的是,FBRetainCycleDetector使用了私有API,会导致苹果审核失败,所以不建议始终开启。当我们拿到一个工具,并且知道它可以检测强引用循环,最关心的当然是如何使用它,所以第一步,我们先学习如何使用FBRetainCycleDetector。需要注意的是FBRetainCy
2020-06-24 16:30:39 4177
原创 数据库插入数据报错Unknown error finalizing or resetting statement (19: UNIQUE constraint failed:xxx.xxx)
PRIMARY Key: 唯一标识数据库表中的各行/记录。NOT NULL: 确保某列不能有 NULL 值UNIQUE: 确保某列中的所有值是不同的。当插入相同的值时会报错:Unknown error finalizing or resetting statement (19: UNIQUE constraint failed: tableName.key)例如以时间为主键,如果在相同的时插入多条数据,就会报这个错...
2020-06-11 15:18:12 1790
原创 iOS自定义UIActivity实现分享详解
我们在使用系统分享的时候,会发现有些平台系统分享是不支持的,比如你想分享到四个平台,系统支持三个,另一个不支持。这个时候我们可以通过自定义UIActivity将另一个平台加到系统分享中。UIActivity是个抽象类,我们需要继承他,实现他定义的方法。我们以分到Instagram为例,详细的说明具体实现过程。先来看一下效果,这里有两个Instagram,一个是系统的,一个是我自定义的(我这个图片...
2020-04-02 15:12:20 2017
原创 iOS本机号码一键登录
我们发现很多知名的App都有本机号码一键登录的功能,甚至你把他卸载了再安装,他依然能实现一键登录的功能,是不是感觉好方便,好想自己的App也有这个功能。那他们是怎么实现的呢?方案一:阿里云号码认证服务我们只需要集成阿里云的SDK,按照帮助文档,就可以轻松实现,授权页面是人家写好了,开发者可以在他的基础上修改。方案二:中国移动一键登录和阿里云的类似,也是需要集成SDK,按照帮助文档一步步...
2020-04-01 10:54:02 9193
原创 iOS关于启动时间的检测及优化
启动时间启动时间可谓是用户对你的App的第一印象,用户好不容易下载了App,然后饶有兴致的开打App,启动时间过长很可能会让用户直接把App打入冷宫。就算用户非常有耐心,苹果的watch dog机制也会kill掉启动时间过长的App,这种情况下给用户的感觉就是这App怎么一启动就卡死然后崩溃了,然后无情卸载。这里还要说一下,Xcode在debug模式下是没有开启watch dog的,所以不要以为...
2020-03-31 12:17:40 1669
原创 iOS 使用UITextField自定义搜索框 实现用户输入完之后“实时搜索”
UI小姐姐设计的搜索框经常是五花八门,系统的搜索框经常不能满足我们的需求,需要我们特别定制一个。但是UITextField的诸多回调里面,没有一个是适合触发搜索时间的。UITextFieldTextDidChangeNotification调用过于频繁,没输入一个字符就调一次接口怕是不太合适。UITextFieldTextDidEndEditingNotification只有在结束编辑的时候才...
2020-03-18 14:50:58 3475
原创 iOS循环播放背景音乐
iOS循环播放背景音乐相关宏定义#define kUserDefaults [NSUserDefaults standardUserDefaults]#define kAppDelegate ((AppDelegate*)[[UIApplication sharedApplication] delegate])static NSString...
2020-03-18 14:00:25 775
原创 iOS导航栏pop到指定页面/pop多层
实际开发中,经常有一次pop多层页面的需求,每次判断是在太麻烦了,于是我为UINavigationController写了一个Extension。纯粹的干货,可以复制粘贴使用。.h 文件@interface UINavigationController (Extension)/** pop到指定的控制器 指定目标控制器的类名即可*/- (void)popToViewControllerW...
2019-12-30 16:40:11 1186
原创 iOS发送短信并设置短信内容
- (void)messageButtonEvent{ // 短信号码可以为空 NSString *phone = [NSString stringWithFormat:@"10086"];// 发短信的号码 NSString *content = @"祝愿你新春欢乐!合家欢乐!万事如意!百事顺心!幸福美满!吉星高照!花开富贵!迎福纳祥!四季发财!"; NSSt...
2019-12-30 16:25:24 893
原创 iOS倒计时动画
效果图制作成gif之后,帧率变快了,看起来很别扭,实际上是每秒执行一次的.h 文件@interface CountDownView : UIView@property (nonatomic, assign) long long time;@property (nonatomic, assign, readonly) long long remainTime;@end@inter...
2019-12-30 16:09:01 573 1
原创 iOS画虚线
CAShapeLayer *border = [CAShapeLayer layer]; // 虚线的颜色 border.strokeColor = kColorWithFloat(0xC9D4DE).CGColor; // 填充的颜色 border.fillColor = [UIColor clearColor].C...
2019-12-30 15:54:34 334
原创 iOS任意圆角与View渐变
开发中经常不规则圆角及渐变的需求,看着挺复杂,其实实现只需要几句代码。先看看效果图,右上角的View既包含不规则的圆角,又包含渐变,里面的按钮也包含渐变实现代码: self.totalView = [[UIView alloc] initWithFrame:CGRectMake(kScreenWidth-140, 20, 140, 38)]; // 渐变 CAG...
2019-12-30 15:47:14 804 1
原创 iOS内购被拒整理
Guideline 2.1 - Performance - App CompletenessWe found that while you have submitted in-app purchase products for your app, the in-app purchase functionality is not present in your binary.苹果说应用程序内购买...
2019-12-10 10:25:45 1179
原创 Mac关闭自动更新
Mac的自动更新可谓是恶心至极,有时候想打开某个软件,却发现打不开,提示正在安装新版本。有时右侧通知栏一直提示安装新系统,不管吧,一直显示在右侧碍事,管吧要么让你立即重启,要么一小时后尝试或者今晚尝试,就是不能关闭取消,烦的一批。终于忍无可忍,不得不放大招了。解决方案打开“系统偏好设置”–>“软件更新”,如下图取消勾选“自动保持我的Mac最新”,这里可能需要输入Mac开机密码。然后点击...
2019-12-05 10:05:07 4378
原创 iOS设置状态栏(UIStatusBarStyle) 总结
本以为设置状态栏很简单,但是每次用每次忘,每次查资料,干脆总结一下首先需要明确,默认情况下状态的样式是:UIStatusBarStyleDefault1.View controller-based status bar appearance 设置为YES 或者不设置(默认是YES)此时通过代码直接设置状态栏是无效的[UIApplication sharedApplication...
2019-06-24 17:18:18 5921
原创 iPhone 直接安装 .ipa包
有些App因为各种原因,不能直接通过App Store下载到,以前是可以在网上找到.ipa文件通过iTunes直接安装的。但是现在的版本已经不支持了。官方的工具不好用,只好用民间的了。我们在电脑上下载一个爱思助手,然后将手机连接到电脑上,然后解锁设备,在弹出窗口中选择信任。此时会在你手机自动安装一个手机版的爱思助手。不要管这个,直接在电脑上,把ipa包拖到应用游戏那一栏就行了...
2019-06-24 16:38:39 32133 1
原创 Command CodeSign failed with a nonzero exit code
最近在集成NEKit,按照网上流传的方式导入第三方库后,编译报错Frameworks/NetworkExtension.framework: bundle format unrecognized, invalid, or unsuitable. Command CodeSign failed with a nonzero exit code.原因是我在Target->Build P...
2019-06-24 16:10:36 9050
原创 dyld: Library not loaded Reason: image not found.
最近在通过Carthage导入第三方库(framework)后,运行项目直接崩溃,控制台报错dyld: Library not loaded Reason: image not found.出现这个错误的原因是第三方库(framework)加载失败解决办法有两种1.在Target->Build Phases->Link Binary With Libraries里面,或者在T...
2019-06-24 15:56:36 1769
原创 iOS 数组乱序
// 将数组array里面的对象乱序 NSArray *result = [self.array sortedArrayUsingComparator:^NSComparisonResult(UserMdoel *user1, UserModel *user2) { int seed = arc4random_uniform(2); if (see...
2019-06-11 17:27:36 698
原创 iOS URL Encode and Decode
iOS 9以前URL Encode 用的是CFStringRefCFURLCreateStringByAddingPercentEscapes(CFAllocatorRef allocator, CFStringRef originalString, CFStringRef charactersToLeaveUnescaped, CFStringRef legalURLCharactersT...
2019-06-10 15:18:48 479
原创 iOS UICollectionView自定义流水布局
UICollectionViewFlowLayout1:直接设置FlowLayout对象创建UICollectionViewLayout对象,通过设置UICollectionViewLayout对象属性的值可以设置item的基本布局,包括大小,间距,内边距等。 UICollectionViewFlowLayout *flowLayout = [[UICollectionView...
2019-05-24 17:23:30 3150
原创 PhotoFilter for Insta Like Support Of Technology
(If you want to see all of this, click the "阅读更多"button)Company profileBeijing hengde technology co., ltd. Beijing hengde technology co., ltd. was established in early 2014. Its main me...
2019-03-19 10:59:23 924
原创 Two-factor authentication for Apple ID
苹果最近强制要求完成Two-factor authentication for Apple ID才能提交爱屁屁.恕我直言 搞这些花里胡哨的东西就是恶心人的 烦的一批.但毕竟人家说了算 咱还是要应付一下的.1. 打开 Mac ->系统偏好设置->iCloud->账户详细信息->安全性 这里如果你没有开启双重验证 , 他就会提示你开启2.点击开启 会让你设置一...
2019-03-18 17:43:16 5262
原创 iOS设置工作日 本地通知提醒(周一到周五重复通知)
需求:1 每周周一到周五的九点半,通过本地通知提醒签到;2 如果用户当天九点半之前已经签到,不再提醒;3 如果用户设置不提醒,则永不提醒实现:1 关于本地通知移步这里2 实现代码static NSNotificationName const _Nullable kCheckinNotification = @"CheckinNotification";static NSSt...
2018-12-27 16:27:38 3179 5
原创 iOS 获取当前控制器 getCurrentViewController 各种结构的项目可以通用
项目中经常需要拿到当前的视图控制器,但是每个项目结构不同,每次都要针对某个项目去写一个获取当前控制器的方法,感觉很不爽,今天终于抽时间搞了一套通用的方法。分享给大家,如果有不对的地方,望大神指正。实现:#define kAppDelegate [UIApplication sharedApplication].delegate#pragma mark - ...
2018-12-21 17:11:20 1314
原创 Git配置SSH Key
背景当前很多公司都选择Git作为代码版本控制工具,我们在使用Git管理代码的时候一般都会选择SSH协议来拉取代码首先,使用代码管理工具把本地的代码上传到服务器时需要加密处理,加密传输的算法有很多种,Git可使用rsa,rsa要解决的一个核心问题是,如何使用一对特定的数字,使其中一个数字可以用来加密,而另外一个数字可以用来解密。这两个数字就是你在使用Git和GitHub,GitLab的时候所...
2018-12-11 10:28:39 257
原创 Guideline 2.3.3 -- We noticed that your screenshots do not sufficiently reflect your app in use
最近提交新项目的时候被拒,苹果回复如下Guideline 2.3.3 - Performance - Accurate MetadataWe noticed that your screenshots do not sufficiently reflect your app in use.Specifically, your 5.5-inch iPhone screenshots do ...
2018-12-03 18:37:25 3236 1
原创 应用间跳转
1. 我们的应用被别的应用打开如果我们希望自己的应用可以被别的应打开,我们需要在info.plist文件中的URL Tpyes中添加一项如果不要打开特定的页面,这样配置好URL Schemes就OK了,想要测试的话,直接在浏览器地址栏输入mytestdemo://并前往。如果要求我们的应用被打开后跳转到指定的页面。我们可以监听AppDelegate的application:handleO...
2018-11-27 16:14:12 212
原创 TableView右侧SectionIndex均匀分布
TableView默认SectionIndexView间距过小,很难点击到,看着也不美观,但是又不能调整其间距。不过用户的需求还是要满足的效果图.h文件@class IndexSectionView;@protocol IndexSectionDelegate <NSObject>- (void)indexSectionView:(IndexSectionView...
2018-11-21 11:32:25 1967 4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人