Objective-C学习小记 | Lemtter 

作者:JerryXia | 发表于 , 阅读 (0)
Syntax And Notes旧数组方法在OC中数组除了可以用下标访问还可以用ObjectAtIndex:方法来访问,同样的创建数组也可以用旧方法arrayWithObjects:来访问。Demo Code
1234/*创建数组需以nil作为结束标记*/NSArray *anyArray = [NSArray arrayWithObjects:objectOne, ObjectTwo, nil];/*返回第一个对象*/id object = [anyArray objectAtIndex:0];创建数组可以向对象发送消息,也可以用字面量语法创建,但要注意用字面量创建数组不可包含nil对象不然会抛出异常。用发送消息的方式创建数组时会在遇到第一个nil时结束Demo Code
12345678id objectOne = @"xx";id objectTwo = nil;id objectThree = @"oo";/*实际上anyArray所指的数组只包括objectOne,arrayWithObjects:会对传入的对象作检查,发现nil会认为数组创建到止结束*/NSArray ...阅读全文

 Xcode调试巧 | Lemtter 

作者:JerryXia | 发表于 , 阅读 (0)
Enable NSZombie Objects (开启僵尸对象)首先打开 Edit Scheme
再选中 Enable Zombie Objects

开启僵尸对象会容易观察到被重复释放的对象,即使在 ARC 项目中也会经常发生对象被重复释放引起的 Crashs,编绎器会让重复释放的象的调试信息更加直观
给所有异常添加(Global BreakPoint)全局断点一般情况在应用崩溃时Xcode喜欢直接跳到main 函数中去,以至于应用到底在哪个地方崩了不是很直观.global breakpoint可以在应用调试时在抛出异常的地方直接添加断点,这样就可以捕获异常的具体的异常信息. 添加方法如下:
exception
Static Analyzer 静态分析Static Analyzer是一个非常好的工具去发现编译器警告不会提示的问题和一些个人的内错泄露和死存储(不会用到的赋了值的变量)错误。这个方法可能大大的提高内存使用和性能,以及提升应用的整体稳定性和代码质量。
怎么打开Static Analyzer?打开Xcide的Product菜单,选择Analyzer选项,Stat...阅读全文

 微博,微信图片浏览过渡动画的实现 | Lemtter 

作者:JerryXia | 发表于 , 阅读 (0)
大家在平常用微信,微博的过程中肯定(对,就是肯定)都有查看过朋友圈和微博所发布的照片,当点击九宫格的某一图片时图片会慢慢的放大并进入全屏,左右滑动查看另一张.轻点图片又会以动画的方式慢慢缩小回到滑动之后对应的图片.说了这么多估计你还是不知道我在讲什么鬼,一张动图胜过千言万语.毕竟语言这东西真不是码农的特长…

上面两张gif点开时的动画不是很明显,你可以在真机上查看更真实效果.接下来我会通过一个Demo来介绍实现这种效果的具体思路,如果你有更好的思路,请求赐教
Demo 预览在开始之前先看一看最终的效果

这个Demo抓取了美丽说的在线图片,这里对毫不知情的美丽说表示感谢.在看下面的部分之前假定你已经撑握了Swift,网络请求,会使用UICollectionView等基础组件的技能.如若不能撑握建议先了解相关知识
DemoGitHub地址
Demo 结构分析在Demo中主要包括两个主要的视图结构:一 缩略图(主视图)的浏览 二 大图的浏览. 这两个视图中所要展示的内容都是有规律的矩形所以都可以用UICollectionView来实现.两者的区别在于缩略图是垂直方向的布局而...阅读全文

 iPad横竖屏代码适配 | Lemtter 

作者:JerryXia | 发表于 , 阅读 (0)
你可能非常了解用不同的方式去适配不同尺寸的iPhone屏幕,在适配iPhone屏幕时你需要考虑的只是屏幕大小变化带来的UI元素间隔的变化,但是在iPad上主要针对的是横竖屏下完全不同的UI元素的布局,在这种情况下要考虑的就不仅仅是元素之间间隔这种问题了,除了要确保UI元素在这两种模式下的正确显示还要兼顾屏幕旋转的过渡动画.下图是QQZone For iPad 在横竖屏下的布局,可以看到横竖屏下菜单栏的布局方式差别很大.
QQZone for iPad GitHub地址

屏幕适配的N种方法无论iPad还是iPhone适配不同屏幕(尺寸,方向)的方式都跑不出以下几种,以下会一一对不同方式做一下简单的回顾.
AutoresizingAutoresizing可以说是Autolayout始祖,Autoresizing的是一项比较有历史的技术了,其在iOS2的时代就推出了.当设置UIView实例对象的autoresizesSubviews属性为true(默认值为true),那么其子view会根据自已的autoresizingMask属性值自动调整与superview的位置和大小关系.au...阅读全文

 远程通知推送教程 | Lemtter 

作者:JerryXia | 发表于 , 阅读 (0)
版权声明 本文翻译自:raywenderlich.com原文作者: Jack Wu译者: JMStack转载请说明原文及译文出处.
iOS开发者们喜欢想象他的用户们会每时每刻使用他们所开发的APP,但是残酷的事实是他们的用户会有关闭APP来处理其它事情的时候.就像你洗好的衣服总要人去叠吧.
幸好,推送通知功能可以让开发者与用户建立连接并进行简单的交互即使用户当前并没有使用APP!
从推送通知功能第一次问世到现在已经变得越来越强大.在iOS9上,远程推送可以做到:
显示短文本播放通知提示音设置APP图标的角标在不打开APP的情况下,允许用户与APP交互允许APP在后台静默唤醒来执行任务这份远程推送通知教程会告诉你远程推送的工作原理的并让你了解它的一些特性.
在开始推送测试之前你需要具备以下条件:
一台iOS设备.远程推送不能在摸拟器上运行,所以你需要一台真机.一个开发者帐号 从Xcode7开始,在真机上测试APP不再需要加入开发者计划.但是为了配置远程推送,你需要有一个与APP ID对应的推送证书,获得这个证书你需要加开发者计划.开始为了接收发送远程推送通知你必须完成以下3个...阅读全文