随笔分类 -  iOS进阶

看到iOS开发基础就可以看这个专题了
摘要:在去年年底开通了个人B站:小码哥MJ,将会不定期上传一些IT干货视频,欢迎观看交流! 下面的图片是截止至2020年6月6日上传的一些内容 也非常欢迎关注个人微信公众号:xmg_mj,将不定期分享IT技术干货 阅读全文
posted @ 2020-03-07 10:19 M了个J 阅读(6765) 评论(0) 推荐(8) 编辑
摘要:String(字符串),是所有编程语言中非常重要的成员,因此非常值得去深入研究。众所周知,字符串的本质是字符序列,由若干个字符组成。比如字符串 "iOS" 由 'i'、'O'、'S' 三个字符组成。(这里不考虑有些编程语言中提及的尾部的 '\0') 思考 在 Swift 开发使用字符串的过程中,你是 阅读全文
posted @ 2019-11-05 16:09 M了个J 阅读(3029) 评论(0) 推荐(1) 编辑
摘要:框架地址:https://github.com/CoderMJLee列出了部分使用MJRefresh & MJExtension框架的APP: 阅读全文
posted @ 2015-04-09 15:42 M了个J 阅读(51961) 评论(38) 推荐(30) 编辑
摘要:工作闲暇之余写的一些小Demo: 1.高仿iPad版QQ空间 code4app 2.快速集成下拉上拉刷新 -- MJRefresh code4app github 3.快速集成图片浏览器 -- MJPhotoBrowser code4app 4.一行代码互转字典(JSON)与模型 -- MJExte 阅读全文
posted @ 2013-10-07 13:15 M了个J 阅读(40783) 评论(19) 推荐(40) 编辑
摘要:上一讲简单介绍了NSThread的使用,虽然也可以实现多线程编程,但是需要我们去管理线程的生命周期,还要考虑线程同步、加锁问题,造成一些性能上的开销。我们也可以配合使用NSOperation和NSOperationQueue实现多线程编程,实现步骤大致是这样的: 1> 先将需要执行的操作封装到一个NSOperation对象中 2> 然后将NSOperation对象添加到NSOperationQueue中 3> 系统会自动将NSOperation中封装的操作放到一条新线程中执行 在此过程中,我们根本不用考虑线程的生命周期、同步、加锁等问 阅读全文
posted @ 2013-04-19 00:36 M了个J 阅读(19132) 评论(5) 推荐(22) 编辑
摘要:每个iOS应用程序都有个专门用来更新显示UI界面、处理用户触摸事件的主线程,因此不能将其他太耗时的操作放在主线程中执行,不然会造成主线程堵塞(出现卡机现象),带来极坏的用户体验。一般的解决方案就是将那些耗时的操作放到另外一个线程中去执行,多线程编程是防止主线程堵塞,增加运行效率的最佳方法。iOS中有3种常见的多线程编程方法:1.NSThread这种方法需要管理线程的生命周期、同步、加锁问题,会导致一定的性能开销2.NSOperation和NSOperationQueue是基于OC实现的。NSOperation以面向对象的方式封装了需要执行的操作,然后可以将这个操作放到一个NSOperationQueue中去异步执行。不必关心线程管理、同步等问题。3.Grand Centeral Dispatch简称GCD,iOS4才开始支持,是纯C语言的API。自iPad2开始,苹果设备开始有了双核CPU,为了充分利用这2个核,GCD提供了一些新特性来支持多核并行编程 阅读全文
posted @ 2013-04-18 22:11 M了个J 阅读(12720) 评论(5) 推荐(18) 编辑
摘要:上一讲介绍了iOS中的异步GET请求,这讲来看看异步POST请求。要想在iOS中发送一个POST请求,首先要了解POST请求的一些细节: 1> 跟GET请求不一样的是,POST请求的请求参数不是拼接在请求路径后面,而是以请求体的形式发送到服务器端。 2> POST请求需要发送两部分的数据到服务器端: * 请求体内容:所有的请求参数 * 请求头信息:请求体长度、请求数据的类型 阅读全文
posted @ 2013-04-17 23:55 M了个J 阅读(12332) 评论(5) 推荐(18) 编辑
摘要:近几年来,云计算是一个非常热门的技术名词,很多专家认为,云计算会改变互联网的技术基础,甚至会影响整个产业的格局。可能还很多人不了解什么是云计算,简单来说,就是把用户的数据(比如文档、照片等)、用户需要使用的软件、用户需要搜索的资源都保存在"云端",并不用保存在用户本地。你可以将"云端"看做了一台超级计算机,其实是由无数台大型服务器组成的.现在很多的移动应用也类似于"云计算"的模式,比如新浪微博,用户的数据都是保存在新浪服务器的数据库里面。 阅读全文
posted @ 2013-04-17 22:30 M了个J 阅读(9116) 评论(6) 推荐(20) 编辑
摘要:CABasicAnimation是CAPropertyAnimation的子类,使用它可以实现一些基本的动画效果,它可以让CALayer的某个属性从某个值渐变到另一个值。下面就用CABasicAnimation实现几个简单的动画。 阅读全文
posted @ 2013-04-15 00:58 M了个J 阅读(11165) 评论(3) 推荐(12) 编辑
摘要:Core Animation,中文翻译为核心动画,它是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍。也就是说,使用少量的代码就可以实现非常强大的功能。Core Animation的动画执行过程都是在后台操作的,不会阻塞主线程。要注意的是,Core Animation是直接作用在CALayer上的,并非UIView。 阅读全文
posted @ 2013-04-15 00:12 M了个J 阅读(13421) 评论(5) 推荐(19) 编辑
摘要:自定义层,其实就是在层上绘图,一共有2种方法。自定义层的方法1,方法描述:创建一个CALayer的子类,然后覆盖drawInContext:方法,使用Quartz2D API进行绘图。自定义层的方法2,方法描述:设置CALayer的delegate,然后让delegate实现drawLayer:inContext:方法,当CALayer需要绘图时,会调用delegate的drawLayer:inContext:方法进行绘图。 阅读全文
posted @ 2013-04-14 20:57 M了个J 阅读(11481) 评论(6) 推荐(15) 编辑
摘要:在前面几讲中已经提到,每一个UIView内部都默认关联着一个CALayer,我们可用称这个Layer为Root Layer(根层)。所有的非Root Layer,也就是手动创建的CALayer对象,都存在着隐式动画。当对非Root Layer的部分属性进行相应的修改时,默认会自动产生一些动画效果,这些属性称为Animatable Properties(可动画属性)。position和anchorPoint属性都是CGPoint类型的。position可以用来设置CALayer在父层中的位置,它是以父层的左上角为坐标原点(0, 0)。anchorPoint称为"定位点",它决定着CALayer身上的哪个点会在position属性所指的位置。它的x、y取值范围都是0~1,默认值为(0.5, 0.5) 阅读全文
posted @ 2013-04-14 20:24 M了个J 阅读(10933) 评论(6) 推荐(15) 编辑
摘要:上一讲已经说过,UIView内部默认有个CALayer对象(层),通过layer属性可以访问这个层。要注意的是,这个默认的层不允许重新创建,但可以往层里面添加子层。UIView可以通过addSubview:方法添加子视图,类似地,CALayer可以通过addSublayer:方法添加子层 阅读全文
posted @ 2013-04-14 01:49 M了个J 阅读(10743) 评论(9) 推荐(15) 编辑
摘要:在iOS系统中,你能看得见摸得着的东西基本上都是UIView,比如一个按钮、一个文本标签、一个文本输入框、一个图标等等,这些都是UIView。其实UIView之所以能显示在屏幕上,完全是因为它内部的一个层。在创建UIView对象时,UIView内部会自动创建一个层(即CALayer对象)。当UIView需要显示到屏幕上时,会调用drawRect:方法进行绘图,并且会将所有内容绘制在自己的层上,绘图完毕后,系统会将层拷贝到屏幕上,于是就完成了UIView的显示。换句话说,UIView本身不具备显示的功能,是它内部的层才有显示功能。 阅读全文
posted @ 2013-04-13 23:18 M了个J 阅读(17013) 评论(26) 推荐(24) 编辑
摘要:Core Data是iOS5之后才出现的一个框架,它提供了对象-关系映射(ORM)的功能,即能够将OC对象转化成数据,保存在SQLite数据库文件中,也能够将保存在数据库中的数据还原成OC对象。在此数据操作期间,我们不需要编写任何SQL语句,这个有点类似于著名的Hibernate持久化框架,不过功能肯定是没有Hibernate强大的。本文介绍iOS中的Core Data应用。 阅读全文
posted @ 2013-02-26 09:40 M了个J 阅读(12804) 评论(18) 推荐(45) 编辑