自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(86)
  • 资源 (1)
  • 收藏
  • 关注

原创 在OC项目中使用SwiftUI

几年前的一个老OC工程,最近想要在上面新增几个功能,打算使用SwiftUI来做,顺便复习下swiftUI的知识。第一步:创建SwiftUI文件。第二步,在创建的SwiftUI文件中添加转换成OC的代码。第四步,在OC中调用SwiftUI的代码。

2022-09-04 11:10:37 2598 1

原创 照片时间隐私政策

照片时间隐私政策版本更新日期:2022年5月22日版本生效日期:2022年5月22日本应用尊重并保护所有使用服务用户的个人隐私权。为了给您提供更准确、更有个性化的服务,本应用会按照本隐私权政策的规定使用和披露您的个人信息。但本应用将以高度的勤勉、审慎义务对待这些信息。除本隐私权政策另有规定外,在未征得您事先许可的情况下,本应用不会将这些信息对外披露或向第三方提供。本应用会不时更新本隐私权政策。 您在同意本应用服务使用协议之时,即视为您已经同意本隐私权政策全部内容。本隐私权政策属于本应用服务使用协议不可

2022-05-22 21:43:47 315

原创 The Google Mobile Ads SDK was initialized incorrectly

今天在升级google ad 的时候,启动应用就有一个crash,看日志:关键信息如下:The Google Mobile Ads SDK was initialized incorrectly. Google AdMob publishers should follow instructions here: https://googlemobileadssdk.page.link/admo...

2019-08-25 11:23:30 4567 2

原创 iOS try-catch memory leak详解

iOS try-catch memory leak详解无论多优秀的客户端的工程师,都架不住服务端不经意间给你吐回的异常数据,怎么能够尽量的避免被坑呢?一个可能的方式,在使用数据之前做好类型校验;另一个,在涉及一些可能会越界或者自己不放心的地方,加一下try-catch,不过使用try-catch的时候,有一些注意事项,其中最重要的就是 memory leak。如何模拟或者检查泄漏?定义一个最...

2019-03-21 19:03:14 1268

原创 使用clang查看OC源码C++实现报错的处理

错误产生的原因:include path for stdlibc++ headers not found; pass ‘-std=libc++’ on the command line to usethe libc++ standard library instead [-Wstdlibcxx-not-found]xcode10 ios12已经彻底没有这个lib了解决办法直接去xcode...

2019-03-17 17:57:04 1497

原创 iOS 多window statusbar rotation 控制

一、问题的产生临近发版时,同事突然找我帮忙看一个statusbar旋转的问题:应用主页只支持竖屏(有子页面需要横屏,所以app还是需要支持portrait、landscapeLeft、landscapeRight三个方向),打卡手机的横竖屏锁,旋转手机,只支持 portrait 的首页的statusbar方向竟然发生了旋转。二、问题的定位发现这个问题,菊花一紧,赶紧下了一个appstore线...

2018-10-18 15:50:30 1027

原创 Mac安装Redis4.0.8

Mac版本:10.13.1 xcode版本9.1Redis简介Redis是一个高性能的key-value内存数据库;中文网站:http://redis.cn官方网站:http://redis.ioRedis有三个主要的特点是有别于其他很多竞争对手的:1.Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用;2.Redis不仅支持简...

2018-03-17 12:12:41 1283

原创 情人节分享几个不错的娱乐工具

一、各大视频网站去除VIP、广告插件vip看看: http://vip.72du.com/?f=vipbar2#help二、全网音频搜索、下载疯狂音乐搜索: http://music.ifkdy.com/比如,我从QQ音乐中,搜索 追梦赤子心,得到如下结果: 红线框中,是音乐文件的地址,如果想要下载这个音乐文件,复制这个文件,打开电脑的终端,使用curl命令来获取,cur...

2018-02-14 11:25:23 670

转载 iOS framework 制作

最近在写了一个上传人眼图片的sdk给第三方用户使用,用到了iOS framework,在网上找了一些这方面写的比较好的文章: //iOS framework 具体制作过程 https://www.cnblogs.com/oc-bowen/p/7478461.html//xcode的一些优化策略。 http://815222418.iteye.com/blog/2317439

2018-01-14 22:22:19 1177 2

转载 iOS模板和编码规范(文章收藏)

这篇文字写的很好: http://www.cocoachina.com/ios/20170419/19087.html

2017-12-10 22:57:18 288

转载 Mac 上 Class JavaLaunchHelper is implemented in both 报错

Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/bin/java (0x10d19c4c0) and /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Hom

2017-10-20 17:24:04 2060 2

原创 Code Snippets 使用

一个偶然的机会,了解了到了xcode一个非常不错的、可以提高代码编写效率的工具,Code Snippets。关于如何使用Code Snippets来设置自己的代码片段,请参考下面这篇文章: http://blog.csdn.net/wzzvictory/article/details/12163939文章写的很好、把如何自定义Code Snippets的方法讲的很透彻,唯一的缺点是没有设置快捷键,

2017-09-04 23:33:55 2527

原创 #pragma clang diagnostic ignored 作用

我们首先要搞清楚的是:作为预处理指令,#pragma 在编译时进行计算。但它并不像如 #ifdef…#endif 之类的宏,#pragma 的使用方式不会改变你的应用运行时的行为。相反的,#pragma 声明主要由 Xcode 用来完成两个主要任务:整理代码和防止编译器警告。我相信大家都用过 #pragma mark来在划分代码模块,使代码更整洁、逻辑更清晰。例如:@implementation V

2017-08-27 19:26:00 2581

转载 iOS __attribute__ 总结

attribute是GNU C特色之一,在iOS用的比较广泛.系统中有许多地方使用到. attribute可以设置函数属性(Function Attribute )、变量属性(Variable Attribute )和类型属性(Type Attribute)等.今天在研究iOS开发模块解耦的时候,发现了一个平时我忽略太多次的一个东西,attribute,本来想深入研究一下,分享给大家,结果找到了一篇

2017-08-12 20:24:13 705

原创 利用AVMutableVideoComposition在特定时间添加水印

今天下午,一个csdn上的朋友加我QQ,问我如何在指定时间段内给视频添加水印,很小众的需求,但是确实有一些应用场景。我研究了一下,在之前加水印的基础上,加了一个动画,效果还可以,故分享给大家。- (void)applyVideoEffectsToComposition:(AVMutableVideoComposition *)composition size:(CGSize)size{ //

2016-07-18 20:33:46 5850 2

原创 GUPImage库的队列管理

最近项目进度不是很紧张,开始研究GUPImage库的源码,发现GUPImage中的队列管理方式设计的很巧妙,值得学习和分享。 在GPUImageOutput.h这个文件,声明了5种不同类型的队列执行方法:void runOnMainQueueWithoutDeadlocking(void (^block)(void));void runSynchronouslyOnVideoProcessi

2016-07-11 18:20:02 2223

原创 git ignore project.xcworkspace无效

今天在使用.gitignore的过程中,遇到了一个很奇葩的问题,在gitignore中已经添加了*.xcuserdata。但是每次改一个文件,都会到导致 .xcuserdata文件修改,不能忍受。使用了下面的方法来解决问题。在终端中输入:$ git rm --cached XXX.xcodeproj/project.xcworkspace/xcuserdata/mac.xcuserdatad/Use

2016-06-22 17:02:19 2096

原创 把自己的开源库添加cocoapods

CocoaPods提供了一种令人Amazing的方式来引入第三方库,作为一个ios开发者,没使用过CocoaPods是一件很遗憾的事情。我从14年开始接触CocoaPods,并在自己的项目中广泛使用它来引入第三方库。我从事ios开发5年多来,积累了大量经过了验证的类别、定制的UI等等OC代码,每次进行新项目开发,都会把积累的这些代码copy到新项目中,需要做大量的重复工作,有诸多不便,于是打算将这些

2016-06-20 21:47:32 2132 1

原创 ios获取所有相册的视频并播放

端午节前,把公司的项目忙完了,这几天开始继续DDPlayer的开发,熟悉代码之后,首先要解决的是:获取并播放相册里面的视频。 对于相册中的视频,我需要关注视频的名称、时常、格式、缩略图等信息,因此,定义了表示视频信息的对象。//AlbumVideoInfo.h#import <Foundation/Foundation.h>#import <UIKit/UIKit.h>@interfac

2016-06-13 18:39:46 12041 1

原创 重要经验八---UIImage转换为CVPixelBufferRef

最近做一个视频处理的项目(Rokk!),需要将opengl渲染后的特效保存为视频,由于使用了第三方库,所以不能直接使用opengl的framebuffer,后面使用了一种比较蛋疼的方式:使用glReadPixels来读取每一个渲染帧,转换为UIImage,然后将UIImage转换为CVPixelBufferRef,使用AVAssetWriterInputPixelBufferAdaptor和AVAs

2016-05-26 16:01:45 14522 6

转载 CocoaPods为工程的所有target增加依赖支持

本文转自:http://blog.csdn.net/vieri_ch/article/details/40590317?utm_source=tuicool&utm_medium=referral在使用CocoaPods时,pod install默认只能为xcode工程的第一个target添加依赖库支持。如果要为所有的target增加可按照如下步骤进行两种情编辑Podfile文件第一种 所有的t

2016-03-04 17:23:55 2886

转载 Runloop 理解

原文出处: http://blog.csdn.net/fhbystudy/article/details/20940913一、Runloop简介:Run loops 是线程相关的的基础框架的一部分。一个 run loop 就是一个事件处理 的循环,用来不停的调度工作以及处理输入事件。使用 run loop的目的是让你的线程在有工作的时候忙于工作,而没工作的时候处于休眠状

2016-02-28 12:17:58 653

转载 dispatch_barrier_async和dispatch_apply的使用

dispatch_barrier_async的使用 dispatch_barrier_async是在前面的任务执行结束后它才执行,而且它后面的任务等它执行完成之后才会执行 例子代码如下: [cpp] dispatch_queue_t queue = dispatch_queue_create(“gcdtest.rongfzh.yc”, DISPATCH_QUEUE_CONCURRENT);

2016-02-19 11:05:36 1834

原创 dispatch_group_t(分派组)

最近在复习一些ios开发的基础知识,在多线程这一章的时候,看到了分派组,想起了之前开发过程中遇到的一些坑,故写这篇blog,免得后来之人犯同样的错误。  这个坑的场景大概是这样的,上传多张图片,图片上传完成之后,更新UI。之前老的方案是一张一张的传,

2016-02-19 11:02:08 1381

原创 给GPUImage录制的视频添加水印

国内目前使用GPUImage来做视频实时处理的应用貌似还不是很多,所以相关的资料也比较少。我们在实时录制视频之后,想加个水印,都要到处找资料,为了避免大家重复造轮子,现将我的解决办法帖出来。 GPUImageAlphaBlendFilter *blendFilter = [[GPUImageAlphaBlendFilter alloc] init]; blendFilter.mix

2016-01-27 15:11:35 9343 11

原创 容易被忽略的xcode xcworkspace

经过一段时间的复习和学习,对使用ffmpeg来解码,越来越有信心,所以在2015年11月13日,正式开始建立工程,取名为 DDPlayer来实验最近所学。 其实在开始建工程前,我回过头去看了看之前参与过的播放器的代码,觉得那个架构太狗屎了,那么多层次,要玩转真是不容易,维护成本太高,突然有点佩服自己当年拿到那么一套狗屎代码竟然还看懂了、还改bug了。 DDPlayer采取2层架构,为了方

2015-11-15 18:30:53 4750

转载 Ffmpeg框架结构解读

下面这篇文章解读的框架比较到位,解码流程也很清楚,值得每天读一两遍。 转载地址:  http://blog.csdn.net/allen_young_yang/article/details/65763031、    FFMEPG结构说明    1.1》介绍    ffmpeg(Fast Forward Moving Pictures Experts Group)是音视频的

2015-10-21 22:17:13 3079

原创 2、kxmovie在xcode7.0.1中运行所遇到的问题

在上一篇中,我们已经clone下来kxmovie的源码,然后运行了git submodule update –init 把相关的依赖库拉到本地。 1,我们查看ffmpeg的版本号,发现拉下来的是 2.2,但是最新的库是2.8,此处需要更新,但是我们先不管它,毕竟2.2相比1.0时代,还是新了很多的。2,继续在命令行中运行 rake命令,开始编译,OK,错误果然来了,提示 gas-preproces

2015-10-21 11:01:48 1883

原创 1、从kxmovie开始

iOS上有很多开源的播放器,其中数kxmovie最值得研究和学习,因此在动手写自己的代码前,我们先来吃透这个播放器。  首先,我们将代码clone到本地,git clone https://github.com/kolyvan/kxmovie,然后就按照https://github.com/kolyvan/kxmovie上提示的方法进行编译。这还是相对比较耗时的,毕竟ffmpeg库很大的嘛。在

2015-10-20 17:28:48 2962

原创 播放器项目正式启动

很早很早之前就想要做一个播放器,但是由于种种原因,一直没有真正行动起来,国庆期间,我在我的应用照片时间 中加入了 admob 广告,现在每天虽然只有几个点击,但是还是看到了做应用赚钱的希望。另外,有小伙伴通过做多款应用和游戏,已经脱离了打工仔的行列,全职当起了个人开发者,非常膜拜,我想了很久,决定利用之前在播放器开发领域积累的经验,做一个比较实用的播放器,方便广大热爱看某片的宅男腐女。

2015-10-20 16:18:14 836

转载 iOS 多语言支持,应用程序国际化 xcode4.5

最近要对一款游戏进行多语言本地化,在网上找了一些方案,加上自己的一点点想法整理出一套方案和大家分享!多语言在应用程序中一般有两种做法:一、程序中提供给用户自己选择的机会;二、根据当前用户当前移动设备的语言自动将我们的app切换对应语言。第一种做法比较简单完全靠自己的发挥了,这里主要讲第二种做法,主要分一下几点:1.本地化应用程序名称2.本地化字符串3.本地化

2015-10-03 14:38:26 578

原创 IOS上获取图片、文件的MD5值。

最近做了一个拍照应用,要将图片上传到服务器,因此需要用到md5校验文件,适用下面的代码就好: #import define CHUNK_SIZE 1024*8(NSString )getFileMD5AtPath:(NSString )path{NSFileHandle *handle = [NSFileHandle fileHandleForReadingAtPath:path]; if

2015-09-18 12:03:20 8266 3

转载 ios一个工程的多个target

转自:http://blog.csdn.net/yongyinmg/article/details/40985341由于项目需求,同一项目需要发两个版本,两个版本只有小部分不同,特地研究了一下target,小有了解,把创建target的经过记录在案,方便过后查看,如有疏漏,请网友指正。创建target有两种方式,1是通过新建target可以通过Fil

2015-09-14 13:30:01 3123

原创 开始学习使用ReactiveCocoa框架

很早(大约一年多前)就听说过ReactiveCocoa这个框架,简单的了解了一下,当时没有引起我的太大的兴趣,直到最近偶然的机会看到了一段用这个框架写的注册、登录页面,让我大吃一惊,好简洁明了。比起现在我们用通知来检测文本框的变化、根据某些条件来判断按钮的enable状态的方法,不知道先进、简单了多少倍。

2015-09-07 16:56:51 1207

原创 使用 resizableImageWithCapInsets获得想要的图片

很早就用过 resizableImageWithCapInsets 来拉伸图片,然后把得到的图片给一个UIImageView,例如imgView,我们能得到相应的效果,这很完美,大家都喜欢。可是,如果我们把这个UIImageView的image属性传递给别的UIImage时,我们得到的不是UIImageview上展示的效果的image,而是,原来未拉伸之前的 image。那么问题来了,如何获取到拉

2015-03-15 18:42:12 4837 1

转载 iOS release版本中去掉NSLog输出

最近项目不是很忙,所以又来整理一下代码,首先发现项目中很多地方都用了NSLog,这是不科学的。那必须得解决一下啊,随便一搜索都知道怎么搞了,我just做一个转载:即:在.pch文件中添加下面一段:#ifndef __OPTIMIZE__#define NSLog(...) NSLog(__VA_ARGS__)#else#define NSLog(..

2015-02-03 16:33:17 5571

原创 iOS [UIScreen mainScreen].bounds 获取屏幕大小不对的问题

最近在做 随遇(我们公司的陌生人社交应用) 的时候,做了一个滑动旋转的引导图,类似当当和百度音乐,在对iphone 6 plus做适配的时候发现了一个奇葩的问题:在公司某个同事的机器上,引导图显示是正常的,在其他人的6P上,显示不正常,让我觉得很疑惑,于是乎debug一番,发现如下规律:1,在引导图能正常显示的机器上,通过[UIScreen mainScreen].bounds 获得的高度是

2015-01-27 11:48:54 21676 5

原创 重要经验七---UITextView文字的阴影显示

很久没有更新blog了,

2014-11-17 23:54:14 4749 1

原创 UMSocial----getSnsPlatformWithName snsName is wxsession

最近在使用友盟社会化SDK的时候,

2014-08-07 15:44:09 1982

原创 重要经验六 NSDictionary排序

集合类,比如NSArrray

2014-08-05 20:22:39 10496 1

空空如也

空空如也

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

TA关注的人

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