
Objective-C
少年出大荒
道无涯
展开
-
iOS runtime防止button连续点击事件
在我们平时iOS开发过程中经常使用按钮,按钮的点击事件使用场景众多。但是我们很少注意到当你快速连续点击同一个按钮的时候,会产生多次响应。一般的处理方法:在点击按钮事件里面,把button.enabled = NO,执行结束再设置为YES。这样也能实现,但是每次都得设置,比较繁琐。runtime方法:runtime绑定button事件响应间隔。写一个UIButton的Category...原创 2018-05-30 17:52:48 · 786 阅读 · 0 评论 -
SDWebImage 增加Header跟踪
我们在APP端访问图片的时候,消耗的流量都是需要付费的,所以一旦有人恶意刷图片流量,造成的损失还是挺烦人的,所以我们可以在访问图片的时候加入我们自己的一个header,以此来跟踪是否是我们自己的APP端访问的图片。我们的图片都是通过阿里云OSS直传的,所以访问图片的链接也需要符合阿里云的规则。类似于AFNetworking的header,,SDWebImage也可以加入header,但是K...原创 2019-07-09 17:07:48 · 1126 阅读 · 1 评论 -
iOS UITextView字数限制 拼音
我们开发的时候,产品经常会要求:详细描述,0/500字,当我们限制了字数的时候,假如我们输入了499个字,当用拼音输入最后一个字的时候,会发现不能输入,因为我们把拼音长度也算了进去,这个时候就需要特殊处理了。首先,我们可以定义一个全局常量500:static NSInteger MaxTVCount_500 = 500;定义全局的textView和用于展示数字的numLab@p...原创 2019-07-03 15:12:26 · 591 阅读 · 0 评论 -
iOS 强制退出关闭app
经常遇到一些产品需求,如果不符合什么条件,或者不遵循什么协议,就退出app上代码#import "AppDelegate.h"//导入头文件-(void)exitApplication { AppDelegate *app = (AppDelegate*)[UIApplication sharedApplication].delegate; //此处如果不强转 App...原创 2019-01-17 23:07:23 · 5085 阅读 · 0 评论 -
iOS 适配iPhoneX状态栏高度以及高度为0的处理
开发的时候,宏定义用的挺普遍,好多人喜欢把导航高度直接定义成 64.f,但是在iPhoneX系列中(iPhoneX、iPhoneXS、iPhoneXR、iPhoneXS Max),导航栏的高度为88.f.非iPhoneX:状态栏高度(20.f)+导航栏高度(44.f) = 64.f,iPhoneX系列:状态栏高度(44.f)+导航栏高度(44.f) = 88.f. 对于状态栏高度,...原创 2018-11-19 10:47:21 · 9725 阅读 · 0 评论 -
iOS 关于UTDID冲突错误问题
集成 支付宝支付(AlipaySDK)、优酷播放器(YKMediaPlayerSDK)、友盟应用统计安全组件(UMCSecurityPlugins)UIDID冲突错duplicate symbol _OBJC_CLASS_$_AidManager in: / Pods/YKMediaPlayerSDK/ThirdLibrary/UTDID/UTDID.framework/UTDID(...原创 2018-11-15 17:11:55 · 4138 阅读 · 0 评论 -
iOS 一行代码处理子视图(移除、隐藏等)
无需遍历循环,一行代码处理子视图逻辑移除所有子视图:[view.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)];显示、隐藏所有子视图//隐藏所有子视图[view.subviews makeObjectsPerformSelector:@selector(setHidden:) withOb...原创 2018-11-07 12:34:06 · 1785 阅读 · 0 评论 -
YYLabel 自动布局 不换行 numberOfLines无效
最近是用Masonry自动布局YYLabel的时候,发现设置了label.numberOfLines = 0,2,3;这些东西之后,label还是没有换行。搞了一下子发现,YYLabel还得设置一个preferredMaxLayoutWidth属性,这个属性是设置最大宽度,设置完才能有换行功能代码双手奉上- (void)viewDidLoad { [super viewDid...原创 2018-11-02 16:42:50 · 15260 阅读 · 0 评论 -
iOS网络请求太频繁 处理之前发送的http请求(取消)
搜索功能在APP中非常的常见,搜索功能伴随的往往是实时搜索结果,极大的方便了用户的查找与实时数据的更新,但是也有极大的问题,当我们搜索框的文字改变的时候,就会进行网络请求,如果输入特别快的时候,网络请求也会特频繁,对服务器的压力也就更大。解决方法:在进行新的网络请求的时候,把之前的http请求取消掉,保证同一时间只有一个http请求在执行,这样就极大的优化了性能,同时减小了服务器的压力下面...原创 2018-11-09 21:20:14 · 3839 阅读 · 2 评论 -
Xcode10 clang error:library not found for -lstdc++.6.0.9
Xcode升级到10.0之后,编译报错苹果于北京时间6月5号凌晨,向开发者提供MacOS、iOS、WatchOS、TvOS四大系统更新,Xcode10 beat版不负众望,继续延续了历史,新版本仍然出问题了。1、找到报错 --> 右键 --> Reveal in Log。可以发现具体错误,是因为Xcode升级到10.0之后,原有的stdc++.6.0.9被废弃 如图: ...原创 2018-09-30 17:50:32 · 855 阅读 · 0 评论 -
iOS masonry添加约束之后 添加layer
我们用masonry约束的时候其实并没有给控件一个具体的frame,所以调用 view.frame都是CGRectZero所以添加layer的时候总是看不到效果,只需要把添加layer的代码放在下面方法即可:-(void)layoutSublayersOfLayer:(CALayer *)layer{}下面我们以圆角为例,直接上代码:-(void)layoutSublayersO...原创 2018-09-10 14:04:12 · 3627 阅读 · 0 评论 -
iOS 解决'interfaceOrientation' is deprecated: first deprecated in iOS 8.0
在之前写的代码中出现 'interfaceOrientation' is deprecated: first deprecated in iOS 8.0 警告,是因为iOS8.0之后的适配问题,只需改为[[UIApplication sharedApplication] statusBarOrientation]搞定!!!...原创 2018-09-10 10:44:54 · 4492 阅读 · 0 评论 -
iOS 关于 定位、相机、相册权限处理
苹果AppStore对于私有API的检测越来越严格,下边给大家提供定位、相机、相册的权限处理方法,在这个封装了一个工具类,感兴趣的可以拿走。后续会继续加入其他权限,欢迎经常来逛逛。 LPDeviceManger.h#import <Foundation/Foundation.h>@interface LPDeviceManager : NSObject/** 检...原创 2018-09-17 10:07:13 · 1084 阅读 · 2 评论 -
Guideline 2.5.1 - Performance - Software Requirements
Guideline 2.5.1 - Performance - Software Requirements Your app uses the "prefs:root=" non-public URL scheme, which is a private entity.上架App Store最烦的就是被拒,但是每个程序员都会被虐恋过。这种情况,是说你使用了苹果的私有API,苹果不干了。全局搜索...原创 2018-09-17 10:08:19 · 926 阅读 · 0 评论 -
iOS Auto property synthesis will not synthesize property 'XXX'
Auto property synthesis will not synthesize property 'XXX';it will be implemented by its superclass, use @dynamic to acknowledge intention父类中已经有一个这样的属性,而你又在子类中进行了声明,编译器就会给出警告通过声明属性,我们可以很简单的为一个成员...原创 2018-09-06 09:54:41 · 1658 阅读 · 0 评论 -
UITextView was deallocated while key value observers were still registered with it.
Trapped uncaught exception 'NSInternalInconsistencyException', reason: 'An instance 0x146028200 of class UITextView was deallocated while key value observers were still registered with it. Current obs...原创 2019-07-16 17:43:55 · 567 阅读 · 0 评论