iPhone开发
爱喝水的人
这个作者很懒,什么都没留下…
展开
-
iPhone沙盒机制
iPhone应用程序都采用沙盒机制。也就是说,应用程序位于文件系统的严格限制部分。你的程序不能直接访问其他应用程序。 iPhone应用程序只能在为该程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被成为沙盒,所以所有的非代码文件都要保存在此,例如图像,图标,声音,映像,属性列表,文本文件等。ios中的安装文件就如同一个个盒子一般,放在了 /user/applications目录下转载 2011-11-16 10:17:20 · 2061 阅读 · 1 评论 -
ios5 选择了ARC但是不使用ARC编译,-fno-objc-arc
升级xcode4.3 以后多了个ARC,新建项目的时候如果选择ARC了,那么一些老的开源框架比如sbjson,asihttprequest都编译不过了。 可以使用 -fno-objc-arc 来标识哪些文件不使用ARC机制,对于很多第三方库来说很有用,能让我们顺利通过过渡期。 如果 需要 arc 编译 写 -fobjc-arc如果你工程设置的 arc 而有几个文件不需要转载 2013-01-05 15:32:43 · 1000 阅读 · 0 评论 -
ios-坐标系统(详解UIView的frame、bounds跟center属性[图])
1、概要翻开ios官方开发文档,赫然发现上面对这三个属性的解释如下:frame:描述当前视图在其父视图中的位置和大小。 bounds:描述当前视图在其自身坐标系统中的位置和大小。 center:描述当前视图的中心点在其父视图中的位置。 是不是有点迷糊?好吧,别急,让我们先说说ios的坐标系统。2、ios坐标系统ios以左上角为坐标原点(0,0),以原点向右侧转载 2013-01-31 17:12:16 · 3390 阅读 · 0 评论 -
适配4inch(未完)
1. 项目中加个1136*640的启动页面图片,命名 Default-568@2x.png2. ios模拟器硬件->设备->iPhone(Retina 4-inch)3. 动态更改控件布局和高度[UIScreen mainScreen].bounds.size.height代码中不要写320和480什么的初始化坐标,要用屏幕高度和宽度初始化#define Scree原创 2013-01-18 22:59:07 · 1086 阅读 · 1 评论 -
iOS 各种控件默认高度(图示)
1.状态栏状态栏一般高度为20像素,在打手机或者显示消息时会放大到40像素高,注意,两倍高度的状态栏在好像只能在纵向的模式下使用。如下图用户可以隐藏状态栏,也可以将状态栏设置为灰色,黑色或者半透明的黑色。如果需要隐藏状态栏可以使用调用:[[UIApplication sharedApplication] setStatusBarHidde转载 2013-02-04 15:47:43 · 21194 阅读 · 1 评论 -
UIWebView加载Loading的两种方法
第一种方法:使用UIView and UIActivityIndicatorView123456789101112131415161718192021222324252转载 2013-03-18 11:29:07 · 839 阅读 · 0 评论 -
CFBundleVersion问题处理
这个问题如果一开始不了解,一旦命名做了,非常的很纠结下面的链接是查询的最终结果http://stackoverflow.com/questions/4933093/cfbundleversion-in-the-info-plist-upload-error下面这个是某人的翻译问题的主要根源貌似是苹果的版本管理存在一个bug.以下信息来自stackflow原创 2013-05-16 17:55:56 · 774 阅读 · 0 评论 -
iOS版本比较方法
之前一直把版本号转换为floatValue,但是最近在项目中又出现了float的问题,主要是NSString表示为@"17.30",转换为floatValue 值为17.299999,然后做了一些放大处理,导致不精确,就是精度少了1所以都不敢在系统版本比较的过程中把值强制转换为floatValue了。/* * System Versioning Preprocessor M转载 2013-05-23 10:48:57 · 1209 阅读 · 0 评论 -
iPhone:动态获取UILabel的高度和宽度
在使用UILabel存放字符串时,经常需要获取label的长宽数据,本文列出了部分常用的计算方法。1.获取宽度,获取字符串不折行单行显示时所需要的长度 CGSize titleSize = [aString sizeWithFont:font constrainedToSize:CGSizeMake(MAXFLOAT, 30)];注:如果想得到宽度的话,size的width转载 2013-05-31 11:58:24 · 502 阅读 · 0 评论 -
UITableViewCell的高亮和选中以及自绘分割线
UITableView是一个比较复杂的控件,不过再负责也是由一些基础的UIView组成的,它继承自UIScrollView,并由很多重用的cell组成。当然为了效率UITableView还做了很多优化的措施,比如cell的重用等。 今天我们就一起来看看UITableView的最重要的组成部分UITableViewCell的一些细节以及分割线的问题。一、UITableViewCel转载 2013-07-04 12:09:48 · 1180 阅读 · 0 评论 -
@synthesize a=_a
An object declared like this:@interface Example : NSObject { NSObject *_a;}@property (retain) NSObject *a;@endAnd implemented like this:#import "Example.h"@implementation Example@syn转载 2013-07-23 11:53:03 · 695 阅读 · 0 评论 -
target.navigationItem.title 颜色和样式
// this will appear as the title in the navigation bar UILabel *label = [[[UILabel alloc] initWithFrame:CGRectZero] autorelease]; label.backgroundColor = [UIColor clearColor];转载 2013-08-09 12:07:42 · 2148 阅读 · 0 评论 -
svn: Could not use external editor to fetch log message; 问题解决
把系统换成了10.9之后,各种问题。 用svn做个分支,提示下面的错误:svn: Could not use external editor to fetch log message; consider setting the $SVN_EDITOR environment variable or using the --message (-m) or --file (-F) options原创 2013-08-14 17:23:19 · 14887 阅读 · 0 评论 -
史上最全的App Store邮箱列表 转lvyile
以下是我08年从事iOS开发以来,和苹果打交道过程中,收集整理下来的邮箱列表,附上简单说明,希望对广大开发者有帮助:------------------------------------------------------------------------------------------------------- AppReview@apple.com-应用在提交后(处转载 2013-09-26 12:28:39 · 1229 阅读 · 0 评论 -
ios5 中文键盘高度变高覆盖现有ui问题的解决方案(获取键盘高度的方法)
背景: ios5之前,iphone上的键盘的高度是固定为216.0px高的,中文汉字的选择框是悬浮的,所以不少应用都将此高度来标注键盘的高度(包括米聊也是这么做的)。 可是在ios5中,键盘布局变了,尤其是中文输入时,中文汉字选择框就固定在键盘上方,这样就使得原本与键盘紧密贴合的界面视图被中文汉字选择框给覆盖住了。一方面影响了界面的美观,另一方面,如果被覆盖的部分就是文本输入框转载 2013-12-16 11:47:07 · 531 阅读 · 0 评论 -
(format 10, created by Subversion 1.6)问题
项目,用Version工具check out。Xcode5升级了相关东西,就出现了 (format 10, created by Subversion 1.6)问题。原因应该是,版本太旧了。相当于我在低版本时候checkout了项目。需要升级。终端:svn upgrade 就可以了。相关svn工具也需要升级原创 2014-01-13 15:01:50 · 4190 阅读 · 0 评论 -
当程序崩溃的时候怎么办 part-1
本文由 大侠自来也 翻译(泰然翻译组),转载请注明出处并通知泰然。有这样一种情形:当我们正在快乐的致力于我们的app时,并且什么看都是无比顺利,但是突然,坑爹啊,它崩溃了。(悲伤地音乐响起)我们需要做的第一件事就是:不要惊慌。修复崩溃不是很困难的。假如你崩溃了,并且胡乱的改些东西,而且还在不停的念着咒语希望bug神奇的自动消失,你大多数情况下都会使情况更麻烦转载 2012-12-26 14:50:23 · 718 阅读 · 0 评论 -
iPhone-NSAssert使用
开发ios程序时调试的好帮手---NSAssert()函数。而且和NSLog()函数一样简单易用,代码如下: NSAssert(x!=0,@"x must not be zero");在表达式“x!=0”不成立时,程序就会抛出异常,并显示自定义的消息"x must not be zero",并同时显示出错的文件、代码和调用函数等信息,是一个程序追踪的很好手段。假设x!=0,不转载 2012-12-26 15:01:25 · 695 阅读 · 0 评论 -
当程序崩溃的时候怎么办 Part-2
泰然教程组出品,转载请保留出处并通知泰然!翻译:大侠自来也;校对:Iven原文地址:http://www.raywenderlich.com/10209/my-app-crashed-now-what-part-2欢迎回到当程序崩溃的时候怎么办 教程!在这个教程的第一部分,我们介绍了SIGABRT和EXC_BAD_ACCESS错误,并且举例说明了一些使用xcode调试器(X转载 2012-12-26 14:53:42 · 967 阅读 · 0 评论 -
xCode 4.X 免证书真机发布及调试
看了一些资料,完成了真机调试了,本来想自己写一篇,供大家用,但是写到一半,突然另外看到一篇,写的非常详细,所以转了,大家可以看看...... 使用环境:越狱过的iPhone 机器 Mac OS 10.6.8 xCode 4.0.1 及Xcode4.0.2操作步骤过程:(一)制作证书1、 打开 Finder->应用程序->实用工具 -> 钥匙串访问 2、转载 2011-11-16 10:23:18 · 1347 阅读 · 0 评论 -
@property 属性
@property是一个属性访问声明,扩号内支持以下几个属性:1,getter=getterName,setter=setterName,设置setter与getter的方法名2,readwrite,readonly,设置可供访问级别2,assign,setter方法直接赋值,不进行任何retain操作,为了解决原类型与环循引用问题3,retain,setter方法对参数进行rel转载 2011-11-16 10:17:59 · 322 阅读 · 0 评论 -
iPhone文件操作
iPhone文件操作(资料+总结)首先我们先了解一下iPhone应用程序中App目录结构,如下: 对于一个运行在iPhone的app,它只能访问自己根目录下得一些文件(所谓sandbox).一个app发布到iPhone上后,它得目录结构如下: 1、其中的app root可以用 NSHomeDirecto原创 2011-11-16 10:20:29 · 1451 阅读 · 0 评论 -
NSNotificationCenter 与设计模式 (Observer)
龙生九子,设计模式中的“抽象”在开发中,我们面临各种模块的开发。为了降低模块间的偶合性,我们往往先把模块间的接口抽象出来,以应对高速变化的需求与业务。模块多了,接口也就多了;接口多了,抽象也就多了;抽象多了,我们的系统就不是科学了。。。是玄学( _ )嘿嘿 。。。所以,这个。。。言归正转,我们系统中所用的“抽象”是基本,“应变简单”才是最终目的。产品修改需求,业务的扩展转载 2011-12-23 13:20:24 · 584 阅读 · 0 评论 -
MKMapView显示位置的地图
先声明,这个的东西是根据http://wangjun.easymorse.com/?p=996做的但是在Xcode4里面做的时候有几个小问题,我这里在我自己做的时候解决了一下,所以也可以参考,毕竟也不是很麻烦的东西)在这里学习一下iOS中地图的使用,下面是一个最简单的例子,用来展示怎么利用MKMapView实现地图的加载.下面是实现过程,首先创建一个原创 2012-02-28 14:05:00 · 2039 阅读 · 1 评论 -
viewDidLoad、viewDidUnload、dealloc、init、loadView的关系说起
init方法在init方法中实例化必要的对象(遵从LazyLoad思想)init方法中初始化ViewController本身loadView方法当view需要被展示而它却是nil时,viewController会调用该方法。不要直接调用该方法。如果手工维护views,必须重写该方法如果使用IB维护views,必须不能重写该方法loadView和IB构建viewvie转载 2012-03-07 15:05:51 · 459 阅读 · 0 评论 -
了解并解决代码签名问题
了解并解决代码签名问题 (为保持跟开发环境以及APPLE开发者社区网站结构对应,一些名词未作翻译) 绝大多数iPhone Developer/Distribution 的代码签名生成错误是因为证书和Provisioning profiles没有在开发系统上正确安装引起的。本文描述在开发 iPhone OS 应用程序时所需要的文件以及如何安装它们。这个技术说明为“转载 2012-05-17 21:11:09 · 630 阅读 · 0 评论 -
"_OBJC_CLASS_$_CALayer"问题解决
突然出现了这个"_OBJC_CLASS_$_CALayer"问题解决方法:Make sure you also add the QuartzCore framework to your target. Just importing the header isn't enough.也就是在你的Frameworks里面添加QuartzCore.framework什么,不会添加,看下图。原创 2012-05-24 16:18:14 · 1051 阅读 · 1 评论 -
MKMapView中天上戳下大头针的效果
MKPinAnnotationView的animatesDrop属性有大头针没有动画,设置以下animatesDrop=YES如果想自定义大头针想有动画,那需要参考下面代码自己写个动画复制代码#pragma mark MKMapViewDelegate- (void)mapView:(MKMapView *)mapView didAddA原创 2012-08-01 17:42:57 · 2717 阅读 · 1 评论 -
UITableViewCell的背景
UITableViewCell是一个很常用的View,通常我们都是直接使用它。- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *cellIdentifier = @"CellIden转载 2012-07-19 16:03:00 · 665 阅读 · 0 评论 -
dequeueReusableCellWithIdentifier的理解
dequeueReusableCellWithIdentifier,首先我们从字面上理解一下,这个单词翻译一下就是“出列的可重用的cell”,其实简单理解来说就是一个cell池,里面放的就是你之前创建过的cell。 iphone重用机制是苹果为了实现大量数据显示而采用的一种节省内存的机制,比如在UITableView和ScrollView 等地方。为什么要“可重用”?对于我们的原创 2012-08-08 18:02:07 · 1944 阅读 · 0 评论 -
iOS 截取部分图片并显示
截取部分图片并显示在ios开发中,肯定会碰到需要截取部分图片的情况。最终的效果类似这样:先看最原始的示例,显示完整的图片写了个最简单的读取图片并显示的代码,打算以此为开始,逐渐实现截取部分图片的功能。代码主要是,在控制器代码中:- (void)loadView { [[UIApplication sharedApplication转载 2012-08-16 16:50:00 · 5862 阅读 · 0 评论 -
IOS内存管理详解
IOS内存管理详解copy 和 retain 的区别copy: 建立一个索引计数为1的对象,然后释放旧对象retain:释放旧的对象,将旧对象的值赋予输入对象,再提高输入对象的索引计数为1那上面的是什么该死的意思呢?Copy其实是建立了一个相同的对象,而retain不是:比如一个NSString对象,地址为0×1111,内容为@”STR”Copy到另外一个NSS转载 2012-08-21 17:24:03 · 621 阅读 · 0 评论 -
如何让MAC OS X下将所有隐含文件都显示出来
终端列出某个文件夹下隐含文件或文件夹的命令是:cd 文件夹路径回车后,输入:ls -a迫使Mac OS X系统将所有隐含文件或文件夹都显示出来,则可以用终端采用以下命令:第一个命令:defaults write com.apple.finder AppleShowAllFiles TRUE回车后,迫使系统将用户资源库里Preferences文件夹里com.apple.f转载 2012-09-25 10:31:54 · 617 阅读 · 0 评论 -
升级Xcode4.5之后,bash中SVN命令未找到
把Mac OS X 升级到10.8.2。安装了Xcode4.5之后。还是老样子,想在bash中用svn命令行,但是失败了“-bash: svn: command not found”解决方法:打开Xcode,左上角苹果符号旁边Xcode选择 Preferences选择Downloads,把Command Line Tools下载了原创 2012-12-25 17:25:57 · 1683 阅读 · 0 评论 -
iOS7 中 boundingRectWithSize:options:attributes:context:计算尺寸的使用
之前使用了NSString类的sizeWithFont:constrainedToSize:lineBreakMode:方法,但是该方法已经被iOS7 Deprecated了,而iOS7新出了一个boudingRectWithSize:options:attributes:context方法来代替。而具体怎么使用呢,尤其那个attributeNSDictionary *attribut原创 2014-01-13 15:06:18 · 11971 阅读 · 3 评论