自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(51)
  • 收藏
  • 关注

原创 OC 使用通知的坑(NSNotificationCenter)

干了五六年的开发了,居然一直没发现使用通知时还有这样的坑:当你使用通知时,如果重复添加一个通知N次,就会接受到N次的响应事件。系统在实现通知的时候,并没有根据通知名称去重。例:给HomeController 添加一个通知A次,当其他对象发送对应的通知消息时,HomeController就会收到A次的消息。...

2019-01-11 17:07:16 1109

原创 iOS12 在h5页面内播放视频后状态栏丢失

问题描述:使用web播放视频后 状态栏丢失 或者 使用web播放视频后页面上移 20 解决办法:#pragma mark --通知-(void)addObserverNotification{ [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(windowDidB...

2018-09-25 18:36:51 4421

原创 手动实现KVO

  KVO内部实现原理KVO是基于runtime机制实现的 当某个类的属性对象第一次被观察时,系统就会在运行期动态地创建该类的一个派生类,在这个派生类中重写基类中任何被观察属性的setter 方法。派生类在被重写的setter方法内实现真正的通知机制 如果原类为BreadModel,那么生成的派生类名为NSKVONotifying_BreadModel 每个类对象中都有一个isa指针指向...

2018-08-21 12:57:34 674

原创 iOS 慢动作视频奔溃

问题:获取相册视频数据的URL时,因为获取到的对象不是AVURLAsset,而是AVComposition导致的,因为AVComposition没有URL属性解决办法:设置 PHVideoRequestOptions 的 deliveryMode 属性为 PHVideoRequestOptionsDeliveryModeAutomatic,即可把慢动作视频变为正常视频,获取到的就会变为 AVU...

2018-08-14 18:31:26 1504

原创 iOS 获取的帧图片旋转

问题:系统默认的是支持90、180、270的旋转的解决办法:禁止获取的帧图片旋转,设置 AVAssetImageGenerator 的 appliesPreferredTrackTransform 属性AVAssetImageGenerator *generator = [AVAssetImageGenerator assetImageGeneratorWithAsset:urlAsset...

2018-08-14 18:25:45 622

原创 iOS 视屏播放卡顿

问题:因为录制的原始视频帧数太大,导致的播放卡顿解决办法:对视频数据做处理,对其进行压缩,设置合适的渲染帧的频率,每秒 10 帧无明显的反应。设置 AVMutableVideoComposition 的 frameDuration 属性,该属性表示 每秒的渲染帧数 AVMutableVideoComposition *mainCompositionInst = [AVMutableVi...

2018-08-14 18:21:26 3566

原创 iOS 视频裁剪获取视频间隔帧图片,当视频较大时,出现奔溃

问题:因为视频长,获取的图片太多,使内存暴涨导致的奔溃 解决办法:设置获取的帧图片大小,AVAssetImageGenerator 设置它的这个属性值 maximumSize,具体的大小更具UI大小定 AVAssetImageGenerator *generator = [AVAssetImageGenerator assetImageGeneratorWithAsset:asset]...

2018-08-14 18:02:52 1468

原创 iOS 小视频声音丢失

副标题:(小视频录制声音丢失,小视频声音丢失,小视频大于10秒声音丢失,小视频录制长视频声音丢失)问题所在:AVCaptureMovieFileOutput他有默认的时间限制,默认值是 10 秒 更改办法:设置 AVCaptureMovieFileOutput 的 movieFragmentInterval 属性为 kCMTimeInvalid,视频录制就不会受到限制 -(AVCap...

2018-08-14 17:55:20 653

原创 dispatch_barrier_*函数(栅栏函数)

GCD中的dispatch_barrier_*函数的使用(栅栏函数)注意:在使用栅栏函数时.使用自定义队列才有意义,如果用的是串行队列或者系统提供的全局并发队列,这个栅栏函数的作用等同于一个同步函数的作用1:dispatch_barrier_async将自己的任务插入到队列之后,不会等待自己的任务结束,它会继续把后面的任务插入到队列,然后等待自己的任务结束后才执行后面任务。- (void)asyn...

2018-07-13 14:52:32 513

原创 面向对象

灵活使用面向对象开发尤为重要,面向对象开发可以大大简化代码逻辑,清爽思路:试试以下问题,看你是不是理解了对象??1,在AController 中将   AController 的 一个数组属性传递给了  他的子控件 ATestView中的 一个数组属性,在 ATestView 中删除自己的数组属性 中最后一个元素后结束流程。请问 AController 中的数组属性变了没有???2,在AContr...

2018-07-12 11:41:22 230 1

原创 UIControlEvents

UIControlEventTouchDown单点触摸按下事件:用户点触屏幕,或者又有新手指落下的时候。UIControlEventTouchDownRepeat多点触摸按下事件,点触计数大于1:用户按下第二、三、或第四根手指的时候。UIControlEventTouchDragInside当一次触摸在控件窗口内拖动时。UIControlEventTouchDragOutside当一次触摸在控件窗...

2018-07-11 11:32:41 345

原创 [!] Could not automatically select an Xcode workspace. Specify one in your Podfile like so:

执行pod install 时报 [!] Could not automatically select an Xcode workspace. Specify one in your Podfile like so: 错误:表示podfile 文件中没有任何要安装的第三方库文件解决办法:1,配置podfilesource'https://github.com/CocoaPods/Specs.git...

2018-07-10 11:02:07 10241

原创 [!] No `Podfile’ found in the project directory

执行pod install 时报该[!] No `Podfile’ found in the project directory问题 :表示项目中没有创建Podfile文件。解决办法:1,cd 工程 2,vim podfile3,pod install  

2018-07-10 10:50:49 8910

原创 二维码图片在微信无法识别(iOS)

问题:分享长截图到微信,长按该图偶现的会发生无法识别到图片中的二维码解决办法:调整图中二维码的尺寸,太大或太小都有可能导致无法识别的情况,最佳尺寸为160...

2018-07-02 11:11:23 7389

原创 Program License Agreement updated

在开发者中心遇到一下问题的解决方案:Program License Agreement updated The 'Apple Developer Program License Agreement' has been updated. In order to access certain membership resources, you must accept the latest licens...

2018-07-02 11:01:45 389

原创 git 账号切换

环境:git 原先配置的是别人的git账户,现在想换成自己的,操作如下1,更改git 用户名:git config --global user.name "用户名"2,更改git 邮箱:git config --global user.email "邮箱"3,重新生成ssh:ssh-keygen -t rsa -C "邮箱",回撤----选择覆盖4,查看公钥,复制粘贴到你的git 账户下的ssh ...

2018-06-08 18:33:13 6776

原创 Mac git的使用

在Mac上,如果你安装了Xcode,就无须下载git安装包进行安装了,因为Xcode自带git包。使用git的流程:0,查看是否安装了git     git --version1,有则创建git仓库(现在的Xcode版本都自带):    git init2,配置git ,即陪你邮箱、用户名     git config --global user.name "用户名"    git config ...

2018-06-08 18:27:24 1058

原创 iOS12 beta 版闪退(使用友盟分享SDK6.8.0和统计版本5.4.0时必现的闪退)

闪退的原因:友盟的重大bug导致,在使用分享SDK6.8.0和统计版本5.4.0进行注册友盟key的时候奔溃,必现。(注释:使用[UMConfigure initWithAppkey:KH_UM_APP_ID channel:@"App Store"];注册友盟key,这是一个综合注册友盟平台的API)奔溃信息如下:[<UIStatusBarTimeItemView 0x101c29cd0&...

2018-06-07 11:14:02 6502 5

原创 JS调用OC失败的原因

在使用WKWebView 时,如果JS调用原生失败,只可能有3个原因:1,没有注册方法2,没有给WKWebViewConfiguration设置WKPreferences,这是最容易被忽略的3,没有给WKWebViewConfiguration设置WKUserContentController,这也是最容易被忽略的 WKWebViewConfiguration *configuration ...

2018-06-05 18:46:44 991

原创 UILabel展示时边上多出来一条黑线

导致这个问题的原因是非整数的宽高导致的,像素高的机型会出现。解决办法:ceil(.width)  ceil(.height)对宽高取整欢迎下载: 卡 惠 APP

2018-04-19 14:42:02 1318

原创 播放GIF图片的内部实现

/* 1 把用户传入的gif图片->NSData 2 根据该Data创建一个图片数据源(NSData->CFImageSourceRef) 3 计算该数据源中一共有多少帧,把每一帧数据取出来放到图片数组中 4 根据得到的数组+计算的动画时间 == 可动画的image 5 [UIImage animatedImageWithImages:images duratio...

2018-03-14 11:38:53 360

原创 Objective C类方法load和initialize的区别

先来看看NSObject Class Reference里对这两个方法说明:+(void)initializeThe runtime sends initialize to each class in a program exactly one time just before the class, or any class that inherits from it, is sent its f...

2018-03-08 17:39:35 191

原创 WKWebView打开itunes链接无法跳转至AppStore

UIWebView:是支持打开外部引用的。WKWebView:去掉了打开外部引用的功能,要想打开需要手到干预,换个姿势跳转。解决办法:[[UIApplication sharedApplication] openURL:URL];...

2018-03-08 11:43:44 1791

原创 MJRefresh上拉加载自动调用多次的bug

1,出现该问题的原因:     这个应该是UITableView最大的改变。我们知道在iOS8引入Self-Sizing之后,我们可以通过实现estimatedRowHeight相关的属性来展示动态的内容,实现了estimatedRowHeight属性后,得到的初始contenSize是个估算值,是通过estimatedRowHeight乘以 cell的个数得到的,并不是最终的co

2018-02-01 11:58:21 4024

原创 iOS 登录状态丢失(登录状态无法持久保持)

---------欢迎下载体验属于你的优惠---------一、登录状态无法持久话保持有以下几个原因: 1,登录后用户数据未能成功插入到用户数据表中,这种情况是只要杀死重启就是退出登录的状态。 2,每次更新用户数据并未使用update而是先清空数据再插入,如果清空数据成功,插入失败就会出现偶现的登录状态无法保持的情况。 3,用户数据存储的路径有问题,没有存在永久区而是存在了缓存区,会导致部分用户长

2018-01-18 15:11:57 1149

原创 iOS 获得当前屏幕所显示的视图控制器

---------欢迎下载体验属于你的优惠---------1,获得当前屏幕所显示的视图控制器+(UIViewController *)topViewController{       UIViewController *controller =    [self topViewControllerWithRootViewController:[self getCurrentWindow].roo

2018-01-18 14:56:31 1234

原创 cocoapods 使用详解

cocoapods 的安装详解:一:切换镜像为淘宝镜像1,淘宝镜像地址:https://ruby.taobao.org/2,Mac系统自带镜像:https://rubygems.org/3,淘宝镜像和系统自带镜像的区别:系统自带镜像不好用,速度慢。4,如何查看当前系统使用的镜像:gem sources -l5,切换系统镜像为淘宝镜像:    

2018-01-05 11:15:23 556

原创 禁止手动滑动ScrollerView

轮播图不希望手动干预图的滚动,直接设置这一句:ScrollerView.scrollEnabled = NO;

2017-12-07 14:44:49 4473

原创 加载过多图片crash

使用TableView、CollectionView展示类似微博或今日头条的页面,由于页面的图片较多,所以一不小心就会遇到快速滑动内存奔溃的问题:我遇到,以下是问题的原因希望对你有所帮助:1,循环引用导致的,一提起循环引用我相信大家想的最多的是block使用不当导致的(weakself),我就是让惯性思维主导了我的想法,找了好久发现是有兄弟把代理给写成强应用了2,我们加载图片使用的是SDW

2017-11-30 11:46:28 762

原创 Missing Marketing Icon - iOS Apps must include a 1024x1024px Marketing Icon in PNG format

Dear developer,We have discovered one or more issues with your recent delivery for "卡惠-信用卡优惠精选". Your delivery was successful, but you may wish to correct the following issues in your next delivery:

2017-10-19 18:34:27 3571

原创 PHP、HTML端调用OC

1,在移动端和webView端进行交互时经常需要相互调用。web端调用移动端的代码如下:window.webkit.messageHandlers.方法名.postMessage({list_id:'201511120981234’,commentType:1});

2017-10-19 14:18:45 1234

原创 由于应用BundleID信息校验不通过,无法分享到微信(iOS)

今天是2017.8月,我相信有好多小伙伴遇到了和我一样的问题,那就是好端端的微信分享突然有一 天发现他出问题了,而我们的代码已经好久没动过了,表示很疑惑。怎么会这样呢,肯定不是我们的问题是苹果的问题、是微信的问题、肯定不是我们的问题类似的话在撕逼,没必要就算是移动端的问题,这个问题可能是你的前辈给你埋的坑或是你自己给自己埋的坑。这样的项目一般都是至少四五年的项目了,之前在微信开发者平台注册app时

2017-08-08 15:40:31 198183 21

原创 iOS 自动识别链接(自动识别URL)

苹果提供的控件中具有自动识别URL、电话、邮箱等功能并且点击可跳转的似乎只有UITextView,如果你有其他更方便的方式麻烦告知。      如果你想实现这个功能需要使用UITextView展示你的内容。    UITextView *textView = [[UITextViewalloc] initWithFrame:CGRectMake(10,10, SCREE

2017-08-01 14:24:40 4107

转载 UIButton上图片和文字的位置调整

UIButton上图片和文字的位置调整      UIButton 上默认是图片在左文字在右,而大多数情况这样默认的的显示形式都不能满足我们的需求,接下来我就这个问题分享一下我的心得。      默认情况下,不设置的效果,都是居中实现    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 

2017-07-05 18:26:05 2243

原创 iOS 微信打开第三方应用(微信跳转第三方app)(Universal Links)

iOS应用可以使用 URL Schemes 进行应用间的跳转或实现网页打开应用的功能,这种跳转是协议跳转。要应用间能跳转就要遵循URL Schemes协议。要网页跳转应用网页就要遵循URL Schemes协议。所以这就出现了微信或QQ等知名应用不能打开第三方应用的问题,不能打开是因为微信和QQ使用的是自己研发的QQ浏览器,他不遵循URL Schemes这个协议。实例演示:(祝第三方

2017-06-30 16:25:25 33766 7

原创 @synchronized 互斥锁

一、什么是NSThreadNSThread是基于线程使用,轻量级的多线程编程方法(相对GCD和NSOperation),一个NSThread对象代表一个线程,需要手动管理线程的生命周期,处理线程同步等问题。二、NSThread方法介绍1)动态创建1NSThread * newThread = [[NSThread allo

2017-06-16 15:37:28 2952

原创 内存优化

1. 用ARC管理内存ARC(Automatic ReferenceCounting, 自动引用计数),它避免了最常见的由于我们忘记释放内存所造成的内存泄露。它自动为你管理retain和release的过程,所以你就不必去手动管理了。编写代码的时候很容易忘掉结尾的release。而ARC会自动在底层为你做这些工作。除了帮你避免内存泄露,ARC还可以帮你提高性能,它能保证释放掉不再需

2017-06-16 10:39:25 794

原创 UIScrollView的setContentOffset相关问题

搜索关键字:定时器中断 (NSTimer中断)、UIScrollView的setContentOffset被无故改变监听不到、切换页面后再返回setContentOffset被改变原因如下:当你对 UIScrollView 设置了分页属性  pagingEnabled = YES 的时候。如果在你执行setContentOffset方法过后,再执行其他操作时,指定坐标的内容将被还原,p

2017-06-16 10:30:56 2609 1

原创 UIApplicationShortcutIconType

3D touch 的自带图标

2017-04-08 14:01:29 1436

原创 A控制器presente到B,B再present到C,C再present到D,D回到到A的方法

UIViewController *rootVC = self.presentingViewController;    while (rootVC.presentingViewController) {        rootVC = rootVC.presentingViewController;    }    [rootVC dismissViewCon

2017-03-23 23:33:37 1285

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除