IOS开发专栏
为IOS开发系列博客文章收集整理
江中散人
在移动前端、微服务后端均有五年+的研发实施与团队管理经验,秉持着“云原生体系是信息科技驱动业务与第三代企业管理变革的终极解决方案”理念,对运用云原生体系(云/容器、微服务、DevOps)推动企业数字化转型(运维、研发、研发管理三位一体)的落地推进形成了一整套成体系的方案落地与转型推进思路,当选CNCF、信通院、华为云牵头组织的全球性云原生专业交流组织创原会2022年度MVP,排名第7位(7/31/308).擅长技术积淀与培训分享,相关技术博客积累超10年,技术领域涵盖云原生(容器/计算/存储/网络/微服务/DevOps)、产品设计、IOS开发、Android开发、Hybrid混合开发等领域
展开
-
浅谈MVC
MVC不是一个新概念,只要有一定开发经验的人基本都知道这个东东。但是之前在业界一直不温不火,直到IOS火起来,这个概念开始为人所熟识并加以运用。究其原因,个人以为是之前的人把MVC搞复杂了(例如ASP.net MVC),IT就是这样,技术越复杂就会越难被人理解接受,越不被人理解接受,自然就不会被大家推广使用。因为之前是搞.net开发了,有过四年asp.net开发经验,虽然说不上钻得有多深,原创 2013-11-06 22:46:39 · 725 阅读 · 0 评论 -
Objective-c内存管理学习总结
1 内存管理思考方式1、 自己生成的对象,自己持有,以alloc、new、copy、mutablecopy开头的方法;2、 非自己生成的对象,自己也能持有,通过retain方法;3、 不再需要自己持有的对象时,将其释放,用release方法;4、 非自己持有的对象,无法释放; 2 Autorelease方法Autoreleasepool的作用原创 2014-04-27 21:07:30 · 714 阅读 · 0 评论 -
Objective-c中block使用时的循环引用问题
由于我们很多行为会导致Block的copy,而当Block被copy时,会对block中用到的对象产生强引用(ARC下)或者引用计数加一(non-ARC下)。如果遇到这种情况:123456789@property(nonatomic, readwrite, copy) completionBlock completionBlock;转载 2014-04-27 21:16:14 · 1015 阅读 · 0 评论 -
Runloop学习总结
1 直线型线程与圆型线程有些线程执行的任务是一条直线,起点到终点;而另一些线程要干的活则是一个圆,不断循环,直到通过某种方式将它终止。 这两类线程能很好的区别Web开发与客户端开发,Web开发中,每次响应都是直线线程,执行完后即释放资源,结束了;而客户端开发中,每次事件响应其实都是产生一个圆,执行操作虽然完成了,但是重要资源与上下文状态都存储在后台。转载 2014-04-27 21:42:26 · 725 阅读 · 0 评论 -
探索IOS App的生命周期之启动篇
因为刚刚涉入IOS APP开发,对IOS应用的使用的生命周期不是很熟,所以写下此日志,以防时间一长又忘记了。Xcode4.5中,工程模板会默认为App程序创建启动用的MainView,配套一个MainView.xib文件,其中默认会有一个Window对象。但若不使用此默认启动对象MainView,而想自定义一个启动对象,则有很多细节需要考虑。在最近一个项目中,笔者用Xcode 5创建了一个原创 2014-05-02 11:44:35 · 1040 阅读 · 0 评论 -
基于运行上下文的APP软件架构设计
1 论状态1.1 论Web开发的无状态性客户端开发与Web端开发最大的不同就在于是否能保留系统运行状态,Web系统走的是HTTP请求,HTTP请求本身就是无状态的,因此即使是同一用户的相临两次请求,对于Web站点而言也是两个完全独立、毫不相干的操作请求。也因为这个原因,Web系统天然承载不了上下文操作关联性很强的需求(很明显的例子就是各类大型游戏,即便是网络游戏)。这种原创 2014-07-21 23:01:13 · 1701 阅读 · 0 评论 -
【IOS】总结-AFNetworking学习笔记
写在前面: xian'b 1 类库功能简介1.1 AFNetworking的大体思路1.1.1 NSURLConnection + NSOperation daozheNSURLConnection 是 Foundation URL加载系统的基石。一个 NSURLConnection 异步地加载一个 NSURLRequest 对象,调用 d原创 2014-11-21 16:31:12 · 11100 阅读 · 0 评论 -
国际化专题
【转自】在xcode5上把你的app多语言国际化http://blog.sina.com.cn/s/blog_4def4daf0101mlcm.html xcode5上面,和之前的版本有点不同,经过研究测试,以下方法可用。 1.到project->info->localizations 下面的加号,添加你需要的语言千万不要删除 base否虽然我不知道有什么用,我转载 2014-12-23 15:53:25 · 460 阅读 · 0 评论 -
【IOS】AFNetworking 2.0中XML请求处理专题
因为AFNetworking2.0中,对于响应返回的xml格式没有做专门的解析处理,因此需要开发者自己来做处理。在笔者的项目中,使用了一个叫AFGDataXMLRequestOperation的第三方类库来统一处理。原创 2014-12-24 18:56:04 · 3091 阅读 · 0 评论 -
【IOS】IOS开发问题解决方法索引(一)
IOS开发问题解决方法索引1 Xcode工程调试时无法命中断点的问题若没有勾选LLVM Compiler 1.6 –> CodeGeneration –> Generate Debug Symbols 一项,则程序调试时无法命中断点。 2 Xcode调试时查看变量的几种方法Xcode如何查看内存中的数据http://blog.csdn.net/原创 2014-12-24 19:01:51 · 965 阅读 · 0 评论 -
【IOS】IOS开发问题解决方法索引(二)
IOS开发问题解决方法索引(二)1 不使用ARC编译,-fno-objc-arcios5 选择了ARC但是不使用ARC编译,-fno-objc-arc http://leobluewing.iteye.com/blog/1384797http://blog.cnrainbird.com/index.php/2012/03/13/object-c_kai_fa_z原创 2014-12-24 19:05:18 · 1033 阅读 · 0 评论 -
【IOS】CocoaPods安装总结
CocoaPods安装总结网上有一些教程,但是各有偏重,感觉不够完整,所以笔者汇总了一些网友的教程,并亲自验证安装了,并总结如下1 在Mac上安装Ruby on Rails(ok)在Mac上安装Rubyon Railshttp://blog.csdn.net/keyboardota/article/details/8935411 2 mac 系统下a原创 2014-12-28 11:13:22 · 1051 阅读 · 0 评论 -
Objective-c与js交互专题
1 原理在写 JavaScript 的时候,可以使用一个叫做 window 的对象,像是我们想要从现在的网页跳到另外一个网页的时候,就会去修改 window.location.href 的位置;在我们的 Objective-C 程序码中,如果我们可以取得指定的 WebView 对象,也就可以拿到这个出现在 JavaScript 中的 window 对象,也就是 [webView w原创 2015-05-06 15:17:15 · 2136 阅读 · 0 评论 -
【IOS】IOS开发问题解决方法索引(三)
1 判断js对象是否拥有某属性 http://www.cnblogs.com/snandy/archive/2011/03/04/1970162.html两种方式,但稍有区别1,in运算符123var obj = {name:'jack'};alert('name' in obj); // --> truealert('t原创 2015-05-15 09:30:18 · 1426 阅读 · 0 评论 -
【IOS】IOS开发问题解决方法索引(四)
1 IOSNSTimer线程无法在委托方法之外停止 NSTimer无法在线程的委托方法之外停止。 2 在IOS4.3中添加AdSupport.framework会引起dyld ‘dyld_fatal_error 将库引用参数设置为可选即可解决。3 Failed to get the task for process xxx 证书问题,pr原创 2015-05-15 09:33:35 · 1360 阅读 · 0 评论 -
【IOS】IOS开发问题解决方法索引(五)
1 Block教程系列发布者:Seven's - 2013/04/22 - 分类:梦印象ios开发block的使用指南,以及深入理解block的内存管理,也适用于osx开发。讨论范围:block的使用,内存管理,内部实现。不包含的内容:gc arc下的block内存,block在c++中的使用。Block介绍(一)基础 Block介绍(二)内存管理与其他特性b原创 2015-05-19 15:28:30 · 2482 阅读 · 0 评论 -
【IOS】IOS开发问题解决方法索引(六)
1 【Network】使用AFNetworking2.0请求数据时出现错误Requestfailed:unacceptablecontent-type:text/html解决方法使用AFNetworking 2.0请求数据时出现错误 Request failed: unacceptablecontent-type: text/html解决方法添加一行manager.原创 2015-05-19 15:33:44 · 1453 阅读 · 0 评论 -
【IOS实战】UIButton 设置图片文字垂直居中排列
大道至简,直接上代码-(void)setButtonContentCenter:(UIButton *) btn{ CGSize imgViewSize,titleSize,btnSize; UIEdgeInsets imageViewEdge,titleEdge; CGFloat heightSpace = 10.0f; //设原创 2015-09-20 18:40:56 · 13025 阅读 · 1 评论 -
IOS开发系列——Masonry手写Autolayout专题【整理,部分原创】
Masonry手写Autolayout专题 Masonry常规开发指导整理自此篇文档(可别说我转载不注明出处哦,^_^),后面加入了笔者在实际开发使用过程中遇到过的一些问题,希望对你有所帮助。Masonry介绍与使用实践:快速上手Autolayouthttp://www.cocoachina.com/ios/20141219/10702.html 1 Masonr原创 2016-01-09 15:12:09 · 835 阅读 · 0 评论 -
IOS开发系列——Objective-c Runtime专题总结【整理】
Objective-c Runtime专题总结 原文 http://yulingtianxia.com/blog/2014/11/05/objective-c-runtime/ 1 OC与Runtime的交互方式 OC 从三种不同的层级上与 Runtime 系统进行交互,分别是通过 Objective-C 源代码,通过Foundation 框架的 NSObject转载 2016-01-09 15:26:52 · 1175 阅读 · 0 评论 -
IOS开发系列——Widget专题【整理】
Widget专题1 机制原理1.1 概念1、appextensionapp extension:extension是iOS8新开放的一种对几个固定系统区域的扩展机制,extension并不是一个独立的app,它有一个包含在app bundle中的独立bundle,extension的bundle后缀名是.appex。当然它有好多类型,如下图官方文档上介绍的那天,今天转载 2016-01-09 15:41:59 · 2963 阅读 · 0 评论 -
IOS开发系列——异步绘制专题
异步绘制专题 1 图片处理1.1 编辑图片的几个方法第一种先用UIImage对象加载一张图片然后转化成CGImageRef放到CGContext中去编辑 第二种 用CGImageCreate函数创建CGImageRef然后把CGImageRef放到CGContext中去编辑 第三种用CGImageCreateCopy或者CGIma原创 2016-01-09 15:48:40 · 6986 阅读 · 0 评论 -
IOS开发系列——设备信息专题【整理,部分原创】
设备信息专题 iOS的APP的应用开发的过程中,有时为了bug跟踪或者获取用反馈的需要自动收集用户设备、系统信息、应用信息等等,这些信息方便开发者诊断问题,当然这些信息是用户的非隐私信息,是通过开发api可以获取到的。那么通过那些api可以获取这些信息呢,iOS的SDK中提供了UIDevice,NSBundle,NSLocale。1 UIDevice类UIDevice提供了多原创 2016-01-09 16:27:18 · 770 阅读 · 0 评论 -
IOS开发系列——APP间相互调用专题【整理,部分原创】
APP间相互调用专题1 OpenUrl原理如果一个应用程序支持一些已知类型的URL,您就可以通过对应的URL模式和该程序进行通讯。然而,在大多数情况下,URL只是用于简单地启动一个应用程序并显示一些和调用方有关的信息。举例来说,对于一个用于管理地址信息的应用程序,您就可以在发送给它的URL中包含一个Maps程序可以处理的地址,以便显示相应的位置。这个级别的通讯为用户创造一个集成度高得原创 2016-01-09 16:30:36 · 1779 阅读 · 0 评论 -
IOS开发系列——Block专题【整理,部分原创】
Block专题前面基本概念部分从网上文章整理,后面使用经验为原创。1 概念简介Block具有将临时函数体创建为表达式的优势。Apple文档中指出: Block是符合如下要求的匿名内联的代码集:1 、和函数一样具有一个指定类型的参数列表;2 、有一个可以推导或声明的返回值类型;3 、可以从它被定义的词义范围中捕捉状态;4 、可以在需要的时候改变词义范围的状态;原创 2016-01-09 16:44:52 · 557 阅读 · 0 评论 -
IOS开发系列——UIView专题之一:UIWindow篇【整理】
1 UIWindow1.1 UIWindow简介UIWindow是一种特殊的UIView,通常在一个app中只会有一个UIWindow。iOS程序启动完毕后,创建的第一个视图控件就是UIWindow,接着创建控制器的view,最后将控制器的view添加到UIWindow上,于是控制器的view就显示在屏幕上了。一个iOS程序之所以能显示到屏幕上,完全是因为它有UIWi转载 2016-01-09 16:54:38 · 531 阅读 · 0 评论 -
IOS开发系列——UIView专题之五:常用开发技巧篇
5UIView开发技巧5.1常用技巧5.1.1使用半透明View与不透明SubView半透明背景视图只能用此种方法设置颜色,否则subView也是半透明的。blurView.backgroundColor= [UIColorcolorWithRed:0green:0blue:0alpha:0.3];5.1.2[super layoutSubviews]要原创 2016-01-09 16:56:25 · 635 阅读 · 0 评论 -
IOS开发系列——UIView专题之四:事件分发机制篇【整理,部分原创】
4事件分发机制iOS中的事件大概分为三种,分别是Milti-Touch Events, Motion Events和Remote Control Events(events for controlling multimedia)。4.1hitTestiOS事件分发机制(一)hit-Testinghttp://suenblog.duapp.com/blog/100原创 2016-01-09 16:59:04 · 915 阅读 · 0 评论 -
IOS开发系列——UIView专题之三:自定义绘制篇【整理,部分原创】
3UIView重绘机制3.1DrawRect机制3.1.1简介iOS的绘图操作是在UIView类的drawRect方法中完成的,所以如果我们要想在一个UIView中绘图,需要写一个扩展UIView的类,并重写drawRect方法,在这里进行绘图操作,程序会自动调用此方法进行绘图。重绘操作仍然在drawRect方法中完成,但是苹果不建议直接调用drawRect方法原创 2016-01-09 17:00:24 · 948 阅读 · 0 评论 -
IOS开发系列——UIView专题之二:动画篇【整理,部分原创】
2UIView动画2.1概述UIView视图的动画功能,可以使在更新或切换视图时有放缓节奏、产生流畅的动画效果,进而改善用户体验。UIView可以产生动画效果的变化包括:•位置变化:在屏幕上移动视图。•大小变化:改变视图框架(frame)和边界。•拉伸变化:改变视图内容的延展区域。•改变透明度:改变视图的alpha值。•改变状态:隐藏或显原创 2016-01-09 17:05:15 · 630 阅读 · 0 评论 -
IOS开发系列——UIWebView专题【整理,部分原创】
UIWebView专题1初始化1.1API接口使用1.1.1loadhtmlstringiOS: UIWebview loadhtmlstring & Localcss/js/image resourceshttp://blog.csdn.net/totogogo/article/details/7613790UIWebView既可以load b原创 2016-01-09 17:07:38 · 999 阅读 · 0 评论 -
IOS开发系列——启动页专题【整理,部分原创】
启动页专题 总述:两种方式,一种是使用系统自带的,按规则定义启动图片名称即可,显示为1秒,要想延长时间,用[nsthread sleepForTimeInterval:5.0] ,另一种就是自定义uiivew,加到window中去。1 系统自带方式1.1 添加图片1,准备图片资源,放入工程中,即可,默认时间为1s iOS设备现在有三种不同的分辨原创 2016-01-09 17:11:16 · 758 阅读 · 0 评论 -
IOS开发问题索引(七)
全系列文章索引:IOS开发问题索引(一)IOS开发问题索引(二)IOS开发问题索引(三)IOS开发问题索引(四)IOS开发问题索引(五)IOS开发问题索引(六)IOS开发问题索引(七)IOS开发问题索引(八)IOS开发问题索引(九)1 【编译】xcode突然编译不通过,报错不支持64位 此种场景出现在将project中32位第三方库替换成64位时,project中如何存在相同的第三方库,最好...原创 2018-03-05 22:28:04 · 345 阅读 · 0 评论 -
IOS开发问题索引(八)
全系列文章索引:IOS开发问题索引(一)IOS开发问题索引(二)IOS开发问题索引(三)IOS开发问题索引(四)IOS开发问题索引(五)IOS开发问题索引(六)IOS开发问题索引(七)IOS开发问题索引(八)IOS开发问题索引(九)1 【SQL】附加数据库5120错误(拒绝访问)处理方法http://jingyan.baidu.com/article/c1a3101e8b34c2de656debb...原创 2018-03-05 22:28:40 · 341 阅读 · 0 评论 -
IOS开发问题索引(九)
全系列文章索引:IOS开发问题索引(一)IOS开发问题索引(二)IOS开发问题索引(三)IOS开发问题索引(四)IOS开发问题索引(五)IOS开发问题索引(六)IOS开发问题索引(七)IOS开发问题索引(八)IOS开发问题索引(九)1 enum用法http://blog.csdn.net/lvxiangan/article/details/209393792 去除TabBar背景图片默认加蓝效果U...原创 2018-03-05 22:29:10 · 417 阅读 · 0 评论 -
【API使用系列】App间跳转专题
1 OpenUrl原理 如果一个应用程序支持一些已知类型的URL,您就可以通过对应的URL模式和该程序进行通讯。然而,在大多数情况下,URL只是用于简单地启动一个应用程序并显示一些和调用方有关的信息。举例来说,对于一个用于管理地址信息的应用程序,您就可以在发送给它的URL中包含一个Maps程序可以处理的地址,以便显示相应的位置。这个级别的通讯为用户创造一个集成度高得多的环境,减少应用...原创 2018-03-05 22:32:37 · 751 阅读 · 0 评论 -
【Api使用系列】Cocoa基础专题
1 Cocoa1.1 Cocoa在OS中的位置以下两张图需要结合IOS系统四层分层思想来看:Cocoa在IOS系统整体架构中的位置Mac OS系统整体架构图Cocoa在Mac OS系统整体架构中的位置1.2 Cocoa组件的依赖关系Cocoa架构的依赖关系...转载 2018-03-05 22:29:59 · 353 阅读 · 0 评论 -
【API使用系列】Core Text专题
API接口文档https://developer.apple.com/library/mac/#documentation/Carbon/Reference/CoreText_Framework_Ref/_index.html1 CoreText.framework简介1.1 常用类库CoreText 框架中最常用的几个类:1 CTFont2 CTFontCollection3 CTFontDes...原创 2018-03-05 22:31:24 · 412 阅读 · 0 评论 -
【API使用系列】KVO/KVC专题
1 开发技巧1.1 常见问题1.1.1 kvo通知没有发出来问题KVO通知发起机制: KVO中属性变化后,通知的发出是在属性的setter方法中发起的,所以属性赋值时,一定要用.操作符或者用方法调用,而不能直接用内部成员赋值的方法。WS(weakSelf);[HJComInstance getEntity:_entity WithUserEntity:userEntity WithCo...原创 2018-03-05 22:33:16 · 206 阅读 · 0 评论 -
【API使用系列】Notification消息通知专题
1 NSNotificationCenter机制1.1 原理1.1.1 不移除通知挂机原因分析@implementation MRCObject- (id)init{ if (self = [super init]) { [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(test)...原创 2018-03-05 22:34:13 · 418 阅读 · 0 评论