IOS
文章平均质量分 68
sunyong445
这个作者很懒,什么都没留下…
展开
-
pod制作时, git的一些资料
git添加tag : git tag '1.0.0' git push --tags git 删除 tag: git tag -d '1.0.0' git push origin :refs/tags/'1.0.0'本地代码推送到新的远程tag: git push origin '1.0.0' ...转载 2018-12-07 09:38:57 · 204 阅读 · 0 评论 -
GLSL 笔记
GLuint glCreateShader(GLenum shaderType); 这个接口用于创建一个着色器。这里的参数 shaderType 是个枚举值,用于指定要创建哪种类型的着色器。GL_VERTEX_SHADER 表示顶点着色器;GL_TESS_CONTROL_SHADER 用于细分 曲面的控制阶段(流水线级,OpenGL4.1);GL_TESS_EVA转载 2013-12-19 11:28:21 · 1059 阅读 · 0 评论 -
__bridge ARC下OC对象与CF对象桥接
__bridge:不涉及对象所有关系改变__bridge_transfer:给予 ARC 所有权__bridge_retained:解除 ARC 所有权在ARC中,OC对象与非OC对象在强制转换中,需要使用以上三个关键字进行桥接,那么三个关键字各用在什么情况下呢?详解如下:下面一行代码:CFStringRef s1 = (CFStringRef)[[NSString all转载 2014-01-07 17:43:46 · 1629 阅读 · 0 评论 -
iOS的系统架构
1.1.1 iOS的系统架构iOS的系统架构分为四个层次:核心操作系统层(Core OS layer)、核心服务层(Core Services layer)、媒体层(Media layer)和可触摸层(Cocoa Touch layer)。图1-1展示了Mac OS X和iOS系统架构层次的一个对比。 图1-1 Mac OS X与iOS基础架构对转载 2014-01-22 11:15:32 · 1084 阅读 · 0 评论 -
在iOS上使用ffmpeg播放视频
国外靠谱的有这几个:1、Mooncatventures group https://github.com/mooncatventures-group2、KxMoviePlayer (use OpenGLES, Core Audio) https://github.com/kolyvan/kxmovie3、FFmpeg for ios (with OpenGLES, AudioQ原创 2014-01-15 16:50:23 · 1526 阅读 · 0 评论 -
IOS工具, 解码,charles,json校验等工具使用地址
解码工具地址:http://meyerweb.com/eric/tools/dencoder/在线json校验格式化工具:http://www.bejson.com/go.php?u=http://www.bejson.com/jsonviewernew/charles使用方法网址:http://blog.devtang.com/blog/2013/12/11/network-tool-c原创 2014-03-17 16:56:24 · 1527 阅读 · 0 评论 -
不同应用共享数据——keychain的使用
通常情况下,我们用NSUserDefaults存储数据信息,但是对于一些私密信息,比如密码、证书等等,就需要使用更为安全的keychain了。keychain里保存的信息不会因App被删除而丢失,在用户重新安装App后依然有效,数据还在。使用苹果官方发布的KeychainItemWrapper或者SFHFKeychainUtils很方便,后来看到 iphone使用keychain来存取用户转载 2014-03-18 17:23:19 · 822 阅读 · 0 评论 -
timer的延时和优化
NSTimer从官方给出的解释可以看出timer会在未来的某个时刻执行一次或者多次我们指定的方法,这也就牵扯出一个问题,如何保证timer在未来的某个时刻触发指定事件的时候,我们指定的方法是有效的呢? 解决方法很简单,只要将指定给timer的方法的接收者retain一份就搞定了,实际上系统也是这样做的。不管是重复性的timer还是一次性的timer都会对它的方法的接收者进行retain,转载 2014-03-18 17:36:56 · 2359 阅读 · 0 评论 -
ios基础
NSNull定义了一个单例来表示集合对象的null数值, nil定义原创 2014-04-15 21:16:55 · 613 阅读 · 0 评论 -
NSRunloop
NSRunloop不同的运行模式,每种模式都有不同的对象集, 模式是如何操作的?原创 2014-04-17 12:19:59 · 575 阅读 · 0 评论 -
一个异步网络请求的坑:关于NSURLConnection和NSRunLoopCommonModes
我们开发App时,常常需要异步下载网络资源或者实现REST API调用,目前流行的HTTP库有ASIHTTPRequest(已经停止开发维护)和AFNetWorking。两者实现异步网络请求的方式不太相同,ASIHTTPRequest使用的是NSOperation+CFNetWork API实现异步网络请求,但是在一个公共独立子线程上去执行网络请求:12345原创 2014-04-17 14:11:03 · 1305 阅读 · 0 评论 -
IOS反思
最近敢了2个项目,总结一下:对ios底层运行还不是不太了解,和cocoa机制的不太熟悉,用了两年的非arc,突然发现自己的内存管理有点弱,一些潜在的内存没有释放,而arc更智能的对缓存机制做了更好的处理,所以当我把非arc项目转为arc时,大部分不知原因的bug都不存在了,都是因为内存吃紧引起的,至于泄露,我还是有把握的,问题算是解决了,但是我看到了自己很多的不足,以后得更加了解instrum原创 2013-10-15 11:14:28 · 852 阅读 · 0 评论 -
IOS内存警告II
iPhone下每个app可用的内存是被限制的,如果一个app使用的内存超过20M,则系统会向该app发送Memory Warning消息。收到此消息后,app必须正确处理,否则可能出错或者出现内存泄露。 app收到Memory Warning后会调用:UIApplication::didReceiveMemoryWarning -> UIApplicationDelegate::app原创 2013-09-14 20:57:37 · 695 阅读 · 0 评论 -
IOS内存警告I
我们都知道在移动设备上很多资源都是比较紧缺的,尤其时内存,通常都比较小,iPhone4也才只有512MB。而且IOS4.0以后还支持了多任务,这个问题就更加突出了。因此我们在平时设计程序的时候要注意管理好内存,减少不必要的开销,谨防泄露。 由于写的一个小项目存在严重的内存泄漏,程序经常运行时间不长就退出了,调试时候发现运行过程中接受到系统的Memry warning level 1几次以原创 2013-09-14 20:51:44 · 937 阅读 · 0 评论 -
Allow apps downloaded from Anywhere
终端输入:sudo spctl --master-disable ,然后输入密码即可原创 2018-11-06 17:30:17 · 854 阅读 · 0 评论 -
XCode 代码块存放地址
Xcode 代码块存放地址:~/Library/Developer/Xcode/UserData/CodeSnippets可以转移该目录下的问题,达到同步作用,换电脑再也不用担心代码块了原创 2017-09-20 11:36:25 · 2195 阅读 · 0 评论 -
UIWebView适配
@2x 会导致web高度x2_webView = [[UIWebView alloc] initWithFrame: CGRectMake(0, 0, self.view.frame.size.width, 0)];_webView.delegate = self;_webView.scrollView.bounces = NO;_webView.scrollView.shows...原创 2017-03-24 15:37:36 · 595 阅读 · 0 评论 -
KVO底层原理
了解更多iOS底层原理知识,关注腾讯课堂金服学院iOS高级开发 上一篇讲了KVC,那么KVO是Cocoa提供的一种基于KVC的机制,允许一个对象(A)去监听另一个对象(B)的某个属性,当该属性改变时,系统会通知监听的对象(A)请注意,这里的刚描述的通知和IOS系统自带NSNotificationCenter是两回事,后续会写篇NSNotification,就能理解是两码事。...原创 2016-12-24 01:57:30 · 692 阅读 · 0 评论 -
KVC和KVO底层原理
了解更多iOS底层原理知识,关注腾讯课堂八点钟学院iOS高级开发 iOS学习交流QQ群431449751KVC和KVO想必都熟知的一个名词,采用观察者模式,那么KVC到底是个什么,KVO又是什么,它们之间是怎样关联的,一起来解决这些疑惑。像我们银行卡bankCard的余额变动,会及时通知给用户,这种场景就运用了观察者模式,达到了系统的高效高性能处理;当你了解KVC机制,会恍然大悟,只要知道一个UI原创 2016-12-18 13:40:35 · 3778 阅读 · 0 评论 -
CATransform3D 矩阵 m11–m44每个的含义
前几天做动画,使用到了CATransform3D ,由于没有学过计算机图形学,矩阵中m11--m44的各个含义都不清楚,经过几天研究总结如下:(供和我一样的菜鸟学习)struct CATransform3D{CGFloat m11(x缩放), m12(y切变), m13(), m14();CGFloat m21(x切变), m22(y缩放), m23(), m24();CGFloat原创 2013-07-25 16:16:42 · 1729 阅读 · 0 评论 -
UDID替代方案
背景:大多数应用都会用到苹果设备的UDID号,UDID通常有以下两种用途:1)用于一些统计与分析目的;【第三方统计工具如友盟,广告商如ADMOB等】2)将UDID作为用户ID来唯一识别用户,省去用户名,密码等注册过程。 不过,2011年时,苹果就宣布ios5.0以后的系统中将不再支持以下方法获取用户的UDID【苹果设备的唯一识别码】:[UIDevice cu转载 2013-08-25 17:30:54 · 802 阅读 · 0 评论 -
遮盖与投影
投影:eg shadowView.layer.shadowOffset =CGSizeMake(0,0); //投影的偏移量 shadowView.layer.shadowRadius =2; // 投影的半径 shadowView.layer.shadowOpacity =0.5; // 投影的透明度遮盖 eg原创 2013-08-28 09:08:02 · 956 阅读 · 0 评论 -
IOS的OpenGL基础
一组顶点数据这是一个正方形顶点的数组,实际上它是由二个三角形接合而成的。 每行顶点数据的排列含义是:顶点X、顶点Y,顶点Z、法线X、法线Y、法线Z、纹理S、纹理T。在后面解析此数组时,将参考此规则。顶点位置用于确定在什么地方显示,法线用于光照模型计算,纹理则用在贴图中。一般约定为“顶点以逆时针次序出现在屏幕上的面”为“转载 2013-08-29 12:05:32 · 2097 阅读 · 1 评论 -
Webview上下拖拽上下阴影取消
// 取消UIWebview后面灰背景的方法id scroller = [_webView.subviewsobjectAtIndex:0]; for(UIView *subViewin [scroller subviews]) { if ([[[subView class]description] isEqualToString:@"UI原创 2013-08-29 17:11:19 · 1673 阅读 · 0 评论 -
IOS 断点续下,上传
1 在服务器支持的情况下才能实现该功能原创 2014-05-04 22:14:49 · 1234 阅读 · 0 评论 -
tableview删除属性
Tableview删除属性,代码如下- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath{ return YES;}- (UITableViewCellEditingStyle)tableView:(UITableView *)ta原创 2014-05-05 14:41:38 · 784 阅读 · 0 评论 -
Http 用Stream传输
一般文件传输用Stream, Stream的创建有两种方式,原创 2014-05-07 11:36:04 · 7993 阅读 · 0 评论 -
MP3格式音频文件结构解析
一、概述Layer-3 音频文件,MPEG(Moving Picture Experts Group) 在汉语中译为活动图像专家组,特指活动影音压缩标准,MPEG音频文件是MPEG1 标准中的声音部分,也叫MPEG 音频层,它根据压缩质量和编码复杂程度划分为三层,即Layer-1、Layer2、Layer3,且分别对应MP1、MP2、MP3 这三种声音文件,并根据不同的用途,使用不同层次的转载 2014-07-28 15:18:49 · 1379 阅读 · 0 评论 -
图片分享和加载失败的原因之一
1 用第三方新浪微博分享图片,图片分享失败的一个yu原创 2014-08-21 13:57:31 · 1605 阅读 · 0 评论 -
FFmpeg基本原理一
了解更多IOS底层原理知识,关注 金服学院FFmpeg是相当强大的多媒体编解码框架,在深入分析其源代码之前必须要有基本的多媒体基础知识,否则其源代码会非常晦涩难懂。本文将从介绍一些基本的多媒体只是,主要是为研读ffmpeg源代码做准备,比如一些编解码部分,只有真正了解了多媒体处理的基本流程,研读ffmpeg源代码才能事半功倍。下面分析一下多媒体中最基本最核心的视频解码过程,平常...原创 2014-09-09 16:59:59 · 2250 阅读 · 0 评论 -
AudioUnit 相关注释
了解更多IOS底层原理知识,关注腾讯课堂 金服学院extern OSStatusAudioFileReadPackets(AudioFileIDinAudioFile, /// 文件ID BooleaninUseCache, UInt32*outNumBytes,...原创 2014-09-24 10:58:59 · 732 阅读 · 0 评论 -
-ObjC的作用 和 Growing嵌入导致的unrecognized selector错误
导入Growing-IOS-SDK后,系统报错:[AppDelegate addFoObserverSelector:template:type:callbackBlock:]: unrecognized selector sent to instance 0x170043de0从错误提示上,明显看出是Growing-IOS-SDK包中的分类(category)没有引入进来,在excu原创 2016-10-25 18:59:34 · 1315 阅读 · 0 评论 -
线上bug重现方法之一
一、遇到真机联调没有问题, 上线后出现bug, 解决方案:编辑edit Scheme菜单里面的Build Configuration有Debug和release两种模式, 用release模式调试即可。了解更多IOS底层原理知识,关注腾讯课堂 金服学院...原创 2016-04-26 09:18:14 · 911 阅读 · 0 评论 -
GLSL和深度测试解释
depth testing(深度测试)的功能,启动它,OpenGL就可以跟踪在z轴上的像素。这样它只会在那个像素前方没有东西时,才会绘画这个像素。在OpenGL ES2.0 的世界,在场景中渲染任何一种几何图形,你都需要创建两个称之为“着色器”的小程序。着色器由一个类似C的语言编写- GLSL这个世界有两种着色器(Shader): Vertex shaders – 在你的转载 2013-11-08 11:47:03 · 2923 阅读 · 0 评论 -
Objective-C Runtime 【objc_msgSend函数】
objc_msgSend函数关于Selector,什么 是Selector,Selector就是一个字符串,用来表示一个方法。在Objective-C中,消息是直到运行的时候才和方法实现绑定的。编译器会把一个消息表达式,[receiver message]转换成一个对消息函数objc_msgSend的调用。该函数有两个主要转载 2013-09-14 18:57:42 · 1229 阅读 · 0 评论 -
Quartz 2D编程指南(1) - 概览
1:原文链接地址:http://www.cocoachina.com/bbs/read.php?tid=77731&page=1Quartz 2D是一个二维图形绘制引擎,支持iOS环境和Mac OS X环境。我们可以使用Quartz 2D API来实现许多功能,如基本路径的绘制、透明度、描影、绘制阴影、透明层、颜色管理、反锯齿、PDF文档生成和PDF元数据访问。在需要的时候,Quartz转载 2013-08-25 17:29:15 · 747 阅读 · 0 评论 -
UIImageview的contentMode属性
contentMode属性:这个属性是用来设置图片的显示方式,如居中、居右,是否缩放等,有一下几个常量可供设定:UIViewContentModeScaleToFillUIViewContentModeScaleAspectFitUIViewContentModeScaleAspectFillUIViewContentModeRedrawUIViewContentModeC转载 2013-08-25 17:12:26 · 837 阅读 · 0 评论 -
看雪论坛ios反编译网址记录
ge想要研究ios逆向工程的,可以多参考看雪论坛的帖子,高手无限。。。http://www.kanxue.com/bbs/showthread.php?t=174525 逆向iOS SDK -- “添加本地通知”的流程分析http://www.kanxue.com/bbs/showthread.php?t=转载 2014-07-28 15:16:15 · 1413 阅读 · 0 评论 -
IOS中一个应用启动另外一个应用
最近要在IOS中实现一个应用启动另外一个应用的功能,搜了一些资料,使用UIApplication的openURL:的方法就能实现,现在整理和大家分享一下!注册自定义URL协议首先被启动的应用需要向iPhone注册一个自定义URL协议。这是在你的项目文件夹的info.plist文件进行的(就是你改变应用程序图标的同一个文件)。Step1. 右键,选择“Add Row”Step转载 2014-07-28 11:21:02 · 721 阅读 · 0 评论 -
Iphone开发 获取视频缩略图和时长
+(UIImage *)getImage:(NSString *)videoURL{ NSDictionary *opts = [NSDictionary dictionaryWithObject:[NSNumber numberWithBool:NO] forKey:AVURLAssetPreferPreciseDurationAndTimingKey];转载 2014-07-28 10:37:19 · 1764 阅读 · 0 评论