随笔分类 -  iOS

摘要:产品有时候会提一些不切实际的需求,比如下面这个:非要在iOS设备上实现登录输入密码不正确时密码框晃动3次的需求。纵观我见过的应用,还没有见过输入框带这种效果的。不过既然要实现,就要想办法争取做出来。最初我的想法是用UIView的animation代码块来实现,效果也可以,代码如下: CGPoint originCenter = textField.center; [UIView animateWithDuration:SHAKE_ONCE_DURATION /2 animations:^{ textField.center =CGPointMake(originCenter.x - I... 阅读全文
posted @ 2014-03-30 18:55 codeartistry 阅读(256) 评论(0) 推荐(0)
摘要:原文在Apple开发中,尤其是移动设备开发,经常会使用Core Location Framework,这个框架可以使得iOS设备获取当前的地理位置。本文就具体到Core Location 框架中,查看其声明源码。CLHeading.h代表了一个可以通过(x,y,z)三维空间坐标确定磁北极位置的向量。精确的Heading(方位)定位,同时也需要时间信息(即通过空间加时间四维坐标来确定位置)typedef double CLHeadingComponentValue;代表一个地理磁场数据类型,以微特斯拉为单位,在三维空间确定设备的坐标。extern const CLLocationDegrees 阅读全文
posted @ 2014-03-20 10:19 codeartistry 阅读(564) 评论(0) 推荐(0)
摘要:做IOS开发的都知道,因为屏幕分辨率的问题,在ios app 中都得放两套切图来支持retina屏和非retina屏幕,但是文字就不需要考虑分辨率的问题,所以可不可以将一些图片用文字来代替呢,省时省力省资源。看下面一些截图:这些截图上面的图标都是用文字来表示的,没有用png图片,看起来还不错吧下面介绍一下制作以及使用图标字体的方法字体图标的制作这部分分两个步骤:1、字形图标的制作 2、字体库的制作一、字形图标的制作安装一个工具Illustrator,这个工具有破解版,自行搜寻下载使用其中的钢笔工具绘制字形图标,比如绘制一个新浪微博logo和垃圾桶,如图:新浪微博logo垃圾桶好了,绘制完字形图 阅读全文
posted @ 2014-03-19 11:59 codeartistry 阅读(884) 评论(0) 推荐(0)
摘要:iOS开发,最郁闷的莫过于程序毫无征兆地就崩溃了,用bt命令打出调用栈,给出的是一堆系统EXC_BAD_ACCESS的信息,根本没办法定位问题出现在哪里iOS开发,最郁闷的莫过于程序毫无征兆地就崩溃了,用bt命令打出调用栈,给出的是一堆系统EXC_BAD_ACCESS的信息,根本没办法定位问题出现在哪里。 首先说一下 EXC_BAD_ACCESS 这个错误,可以这么说,90%的错误来源在于对一个已经释放的对象进行release操作。举一个简单的例子来说明吧,首先看一段Java代码:复制代码代码如下:public class Test{public static void main(String 阅读全文
posted @ 2014-03-19 09:51 codeartistry 阅读(2258) 评论(0) 推荐(0)
摘要:原文:http://superwanc.diandian.com/post/2013-09-12/40052870537经常有朋友会问Crash的问题。Crash最多的无非就两种,一种就是signal SIGABRT,大概的意思就是发送Message出现问题,信号迷失了。这种的Crash其实是很好定位,Crash了后直接看Console里出的最后日志,比如这段:2012-03-28 19:26:33.055 TableViewMenuDemo[3916:f803] *** Terminating app due to uncaught exception ‘NSInvalidArgumentE 阅读全文
posted @ 2014-03-19 09:47 codeartistry 阅读(235) 评论(0) 推荐(0)
摘要:转自:iOS应用崩溃日志揭秘作为一名应用开发者,你是否有过如下经历?为确保你的应用正确无误,在将其提交到应用商店之前,你必定进行了大量的测试工作。它在你的设备上也运行得很好,但是,上了应用商店后,还是有用户抱怨会闪退 !如果你跟我一样是个完美主义者,你肯定想将应用做到尽善尽美。于是你打开代码准备修复闪退的问题……但是,从何处着手呢?这时iOS崩溃日志派上用场了。在大多数情况下,你能从中了解到关于闪退的详尽、有用的信息。通过本教程,你将学习到一些常见的崩溃日志案例,以及如何从开发设备和iTunes Connect上获取崩溃日志文件。你还将学习到符号化( symbolication),从日志追踪到 阅读全文
posted @ 2014-03-19 09:34 codeartistry 阅读(1051) 评论(0) 推荐(0)
摘要:转自:http://my.oschina.net/zxs/blog/142544Xcode已经集成了git,建立新项目时钩选使用git,然后按照下面步骤让Xcode和git@osc建立连接。第一步:成生SSH密钥打开终端命令工具,输入命令:ssh-keygen -t rsa -C "diaosi@gmail.com"注意ssh-keygen没有空格。屏幕输出:Generating public/private rsa key pair.Enter file in which to save the key (/Users/diaosi/.ssh/id_rsa):diaosi 阅读全文
posted @ 2014-03-17 18:39 codeartistry 阅读(538) 评论(0) 推荐(0)
摘要:转自:http://www.cocoachina.com/applenews/devnews/2013/0918/7022.html古人云“工欲善其事必先利其器”,打造一个强大的开发环境,是立即提升自身战斗力的绝佳途径!以下是搜集的一些有力的XCode插件。1.全能搜索家CodePilot 2.0你要找的是文件?是文件夹?是代码?Never Mind,CMD+SHIFT+X调出CodePilot,输入任何你想到搜的东西吧!想搜appFinishLaunchingWithOptions?忘记咋拼了?没关系强大的代码搜索能力,appflaun一样也可以找到!超级强大的正则匹配,匹配任何你所想!项目 阅读全文
posted @ 2014-03-17 10:59 codeartistry 阅读(141) 评论(0) 推荐(0)
摘要:文章来源:9款优秀的免费测试框架帮你揪出app中的“臭虫”1. Appium(iOS/Android):http://appium.io/Appium是一个开源的、跨平台的自动化测试工具,适用于原生的,混合型的以及移动web app。支持iOS、Android和FirefoxOS平台。通过Appium,开发者无需重新编译app或者做任何调整,可以测试任何语言和任何框架的移动应用,可以使用测试代码完全访问后端API和数据库。Appium是基于原生应用无需SDK和编译就可以进行测试的理念而进行设计的,开发者可以使用WebDriver兼容的语言编写测试脚本,比如Java, Objective-C, 阅读全文
posted @ 2014-02-27 15:21 codeartistry 阅读(1162) 评论(0) 推荐(0)
摘要:在实际的编程过程中,通常会把一些公用函数制成函数库,供其它程序使用,一则提搞了代码的复用;二则提搞了核心技术的保密程度。所以在实际的项目开发中,经常会使用到函数库,函数库分为静态库和动态库两种。和多数人所熟悉的动态语言和静态语言一样,这里的所谓静态和动态是相对编译期和运行期的:静态库在程序编译时会被链接到目标代码中,程序运行时将不再需要改静态库;而动态库在程序编译时并不会被链接到目标代码中,只是在程序运行时才被载入,因为在程序运行期间还需要动态库的存在。iPhone官方只支持静态库联编,本文就以静态库为例讲解iPhone中静态库的具体用法。在实际的开发过程中,可能在项目设计阶段把一些功能比如图 阅读全文
posted @ 2014-02-25 17:19 codeartistry 阅读(123) 评论(0) 推荐(0)
摘要:lsof -i:3306查看3306端口被谁占用kill -9 [PID]结束指定的 PID 执行程式history -c清除mac 系统终端的历史命令记录ls列出当前目录下所有文件man [命令]查询某个命令的使用方法在终端里输入下面命令即可让它们显示出来。 defaults write com.apple.finder AppleShowAllFiles -bool true 如果想恢复隐藏,可以用这个命令: defaults write com.apple.finder AppleShowAllFiles -bool falsechflags hidden (文件/文件夹的相对或绝对路径 阅读全文
posted @ 2014-02-25 17:15 codeartistry 阅读(559) 评论(0) 推荐(0)
摘要:第一章 核心动画概念核心动画,开发人员可以为他们的应用创建动态用户界面,而无需使用低级别的图形 API,如 OpenGL 来获取高效的动画性能。前言,核心动画的好处1.简单易用的高性能混合编程模型。2.类似视图一样,你可以通过使用图层来创建复杂的接口。 通过是CALayer来使用更复杂的一些动画。 3.轻量级的数据结构,它可以同时显示并让上百个图层产生动画效果。 控制多个CALayer来显示动画效果 4.一套简单的动画接口,可以让你的动画运行在独立的线程里面,并可以独立于主线程之外。5.一旦动画配置完成并启动,核心动画完全控制并独立完成相应的动画帧。6.提高应用性能。应用程序只当发生改变的.. 阅读全文
posted @ 2014-02-25 16:53 codeartistry 阅读(260) 评论(0) 推荐(0)
摘要:做iphone开发首先第一件就是得知道iphone程序的生命周期,说白点就是当点击程序图标启动程序开始到退出程序整个使用运行过程中底下的代码都发生了什么,只有理解了这个才能游刃有余的掌握Iphone程序的开发,否则在写程序的时候有点浑浑僵僵不知所以然的感觉。首先忘记Xcode给我们生成的代码模板,忘记xib忘记ib,我们亲自一行一行来写一个HelloWorld程序,虽然真正开发项目的时候并不需要这样做Xcode模板和ib都会为我们做好这些打杂的事情,但是现在完全由我们自己来写,放心这个程序是个非常的简单的HelloWorld 程序,代码也很少总共加起来不过10几行。在这之前我们先来看看obje 阅读全文
posted @ 2014-02-25 16:25 codeartistry 阅读(139) 评论(0) 推荐(0)
摘要:1.UIView是iOS系统中界面元素的基础,所有的界面元素都继承自它。它本身完全是由CoreAnimation来实现的(Mac下似乎不是这样)。它真正的绘图部分,是由一个叫CALayer(CoreAnimationLayer)的类来管理。UIView本身,更像是一个CALayer的管理器,访问它的跟绘图和跟坐标有关的属性,例如frame,bounds等等,实际上内部都是在访问它所包含的CALayer的相关属性。2.UIView有个layer属性,可以返回它的主CALayer实例,UIView有一个layerClass方法,返回主layer所使用的类,UIView的子类,可以通过重载这个方法, 阅读全文
posted @ 2014-02-25 16:15 codeartistry 阅读(137) 评论(0) 推荐(0)
摘要:经常使用UIView以及它的子类,一般对于init:,viewDidLoad:,dealloc:等方法应该是比较熟悉和了解的。对于其它几个基本方法就不那么常用了,为了更好地编程使用这些方法,在此集中收集整理一下各方法调用的时机和作用:init:方法在init方法中实例化必要的对象(遵从LazyLoad思想)init方法中初始化ViewController本身loadView:方法这是当没有正在使用nib视图页面,子类将会创建自己的自定义视图层。绝不能直接调用。如果手工维护views,必须重载重写该方法。当view需要被展示而它却是nil时,viewController会调用该方法。loadVi 阅读全文
posted @ 2014-02-25 16:14 codeartistry 阅读(159) 评论(0) 推荐(0)
摘要:1. IOS应用或者说移动设备上的应用的最大的特征是:Fast Launch, Short Use。移动用户路上、机场候机中、地铁中等场合使用,每次用户使用移动设备的时间大多是非常短,需要应用能够快速启动。在IOS 4多任务的环境下,用户在同一时间只和当前的应用交互,其他应用被运行在系统的后端环境亦即内存中,直到用户切换环境唤起或者用户/系统将其从内存中彻底移出。显然,内存中存活的IOS应用从后端切换到前端的速度要比IOS应用启动的速度快得多,然而需要指出的是,由于内存的限制,系统有可能可能将最近不使用的应用从内存中清除,由于该清除动作可能发生在任何时间并无没有任何提示,IOS应用应当在切换到 阅读全文
posted @ 2014-02-25 16:05 codeartistry 阅读(230) 评论(0) 推荐(0)
摘要:iOS中的永久存储也是相对的(以下所讲的永久存储也是如此),在用户不对设备进行恢复或还原操作时,部分数据是可以做到永久存储的(即应用被删除后重新安装数据不会丢失,在替代UUID方法中较为有效)。几个概念:1.UUID: (Universally Unique Identifier) 通用唯一标识符,是一个标识符标准用于软件架构,由开放软件基金会(OSF)作为分布式计算环境(DCE)的一部分而制作的标准。UUID的目的是让分布式系统中的所有元素都能有唯一的辨识资讯,不需要透过中央控制端来做辨认资讯的制定。如此一来每个人都建立一个与其他人不同的标 识符,这样在存储到数据库中时,就不用担心名称相同的 阅读全文
posted @ 2014-02-25 15:45 codeartistry
摘要:A Short Practical Guide to Blocks原文地址:https://developer.apple.com/library/ios/featuredarticles/Short_Practical_Guide_Blocks/index.htmlBlocks are a powerful C-language feature that is part of Cocoa application development. They are similar to “closures” and “lambdas” you may find in scripting and pro 阅读全文
posted @ 2014-02-21 10:36 codeartistry