03 2014 档案
摘要:产品有时候会提一些不切实际的需求,比如下面这个:非要在iOS设备上实现登录输入密码不正确时密码框晃动3次的需求。纵观我见过的应用,还没有见过输入框带这种效果的。不过既然要实现,就要想办法争取做出来。最初我的想法是用UIView的animation代码块来实现,效果也可以,代码如下: CGPoint originCenter = textField.center; [UIView animateWithDuration:SHAKE_ONCE_DURATION /2 animations:^{ textField.center =CGPointMake(originCenter.x - I...
阅读全文
摘要:转自:Git 常用命令详解Git 是一个很强大的分布式版本管理工具,它不但适用于管理大型开源软件的源代码(如:linux kernel),管理私人的文档和源代码也有很多优势(如:wsi-lgame-pro)Git 的更多介绍,请参考我的上一篇博客:Git 版本管理工具一、 Git 命令初识在正式介绍Git命令之前,先介绍一下Git 的基本命令和操作,对Git命令有一个总体的认识示例:从Git 版本库的初始化,通常有两种方式:1)git clone:这是一种较为简单的初始化方式,当你已经有一个远程的Git版本库,只需要在本地克隆一份例如:git clone git://github.com/so
阅读全文
摘要:转自:Git 常用命令速查表本文将对Git 命令,做一下全面而系统的简短总结,整理成简洁、明了的图表结构,方便查询一、 Git 常用命令速查git branch 查看本地所有分支git status 查看当前状态git commit 提交git branch -a 查看所有的分支git branch -r 查看远程所有分支git commit -am "init" 提交并且加注释git remote add origin git@192.168.1.119:ndshowgit push origin master将文件给推到服务器上git remote show origi
阅读全文
摘要:1.什么是正则表达式基本说来,正则表达式是一种用来描述一定数量文本的模式。Regex代表Regular Express。本文将用>来表示一段具体的正则表达式。一段文本就是最基本的模式,简单的匹配相同的文本。2.不同的正则表达式引擎正则表达式引擎是一种可以处理正则表达式的软件。通常,引擎是更大的应用程序的一部分。在软件世界,不同的正则表达式并不互相兼容。本教程会集中讨论Perl 5类型的引擎,因为这种引擎是应用最广泛的引擎。同时我们也会提到一些和其他引擎的区别。许多近代的引擎都很类似,但不完全一样。例如.NET正则库,JDK正则包。3.文字符号最基本的正则表达式由单个文字符号组成。如>
阅读全文
摘要:原文在Apple开发中,尤其是移动设备开发,经常会使用Core Location Framework,这个框架可以使得iOS设备获取当前的地理位置。本文就具体到Core Location 框架中,查看其声明源码。CLHeading.h代表了一个可以通过(x,y,z)三维空间坐标确定磁北极位置的向量。精确的Heading(方位)定位,同时也需要时间信息(即通过空间加时间四维坐标来确定位置)typedef double CLHeadingComponentValue;代表一个地理磁场数据类型,以微特斯拉为单位,在三维空间确定设备的坐标。extern const CLLocationDegrees
阅读全文
摘要:做IOS开发的都知道,因为屏幕分辨率的问题,在ios app 中都得放两套切图来支持retina屏和非retina屏幕,但是文字就不需要考虑分辨率的问题,所以可不可以将一些图片用文字来代替呢,省时省力省资源。看下面一些截图:这些截图上面的图标都是用文字来表示的,没有用png图片,看起来还不错吧下面介绍一下制作以及使用图标字体的方法字体图标的制作这部分分两个步骤:1、字形图标的制作 2、字体库的制作一、字形图标的制作安装一个工具Illustrator,这个工具有破解版,自行搜寻下载使用其中的钢笔工具绘制字形图标,比如绘制一个新浪微博logo和垃圾桶,如图:新浪微博logo垃圾桶好了,绘制完字形图
阅读全文
摘要:iOS开发,最郁闷的莫过于程序毫无征兆地就崩溃了,用bt命令打出调用栈,给出的是一堆系统EXC_BAD_ACCESS的信息,根本没办法定位问题出现在哪里iOS开发,最郁闷的莫过于程序毫无征兆地就崩溃了,用bt命令打出调用栈,给出的是一堆系统EXC_BAD_ACCESS的信息,根本没办法定位问题出现在哪里。 首先说一下 EXC_BAD_ACCESS 这个错误,可以这么说,90%的错误来源在于对一个已经释放的对象进行release操作。举一个简单的例子来说明吧,首先看一段Java代码:复制代码代码如下:public class Test{public static void main(String
阅读全文
摘要:原文: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
阅读全文
摘要:转自:iOS应用崩溃日志揭秘2场景 4: 吃棒棒糖时闪退!用户邮件说, “当rage master吃棒棒糖时应用就闪退…” 另一用户说, “我让rage master 吃棒棒糖,没几次应用就闪退了!”崩溃日志如下:Incident Identifier: 081E58F5-95A8-404D-947B-5E104B6BC1B1CrashReporter Key: 5a56599d836c4f867f6eec76afee451bf9ae5f31Hardware Model: iPhone4,1OS Version: iPhone OS 6.0 (10A403)Ke...
阅读全文
摘要:转自:iOS应用崩溃日志揭秘作为一名应用开发者,你是否有过如下经历?为确保你的应用正确无误,在将其提交到应用商店之前,你必定进行了大量的测试工作。它在你的设备上也运行得很好,但是,上了应用商店后,还是有用户抱怨会闪退 !如果你跟我一样是个完美主义者,你肯定想将应用做到尽善尽美。于是你打开代码准备修复闪退的问题……但是,从何处着手呢?这时iOS崩溃日志派上用场了。在大多数情况下,你能从中了解到关于闪退的详尽、有用的信息。通过本教程,你将学习到一些常见的崩溃日志案例,以及如何从开发设备和iTunes Connect上获取崩溃日志文件。你还将学习到符号化( symbolication),从日志追踪到
阅读全文
摘要:转自: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
阅读全文
摘要:转自:http://www.cocoachina.com/applenews/devnews/2013/0918/7022.html古人云“工欲善其事必先利其器”,打造一个强大的开发环境,是立即提升自身战斗力的绝佳途径!以下是搜集的一些有力的XCode插件。1.全能搜索家CodePilot 2.0你要找的是文件?是文件夹?是代码?Never Mind,CMD+SHIFT+X调出CodePilot,输入任何你想到搜的东西吧!想搜appFinishLaunchingWithOptions?忘记咋拼了?没关系强大的代码搜索能力,appflaun一样也可以找到!超级强大的正则匹配,匹配任何你所想!项目
阅读全文
摘要:Core Data是苹果针对Mac和iOS平台开发的一个框架,主要用来储存数据。对很多开发者来说,Core Data比较容易入手,但很难精通,如果没有正确的学习方法,你将很难真正理解它,更不用说精通了。很多开发者常常在这方面犯一些错误,而这篇文章列出了开发者在iOS开发过程中使用Core Data常见的一些错误,并对如何避免这些错误进行了分析。1.不了解关键术语对于iOS开发者来说,会使用Core Data是一项必备技能。 没有它,很多app都不会存在。当在互联网上四处搜索Core Data学习教程,你很容易被各种各样的术语吓倒。事实上大部分学习教程都首先假定你已经知道了这些术语,而如果你不
阅读全文
摘要:参考:【C++】define 和typedef 的详细区别define与typedef区别与联系#define(宏定义)只是简单的字符串代换(原地扩展),它本身并不在编译过程中进行,而是在这之前(预处理过程)就已经完成了。typedef是为了增加可读性而为标识符另起的新名称(仅仅只是个别名),它的新名字具有一定的封装性,以致于新命名的标识符具有更易定义变量的功能,它是语言编译过程的一部分,但它并不实际分配内存空间。一般都遵循#define定义“可读”的常量以及一些宏语句的任务,而typedef则常用来定义关键字、冗长的类型的别名。typedef是语句( 以';'结尾),而#de
阅读全文
摘要:在宏定义中经常会用到#和##1、单井号(#):把传递过来的参数当成字符串进行替代如下示例:程序代码#define display(name) printf(""#name"")int main() {display(name);}输出:name2、双井号(##)是宏定义中的连接符,就是把前后两个参数连接在以起,这个在实际应用中一般碰不到,不排除考试和面试中出现 。#include#define link(a,b) a##busingnamespace std;int main(){int x=2,y=3,xy=10; cout<<x<&
阅读全文

浙公网安备 33010602011771号