摘要:
1、禁用arc2、然后使用如下代码:- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; GuideViewController *myGuideVC = [[GuideViewController alloc]initWithNibName:@"GuideVie. 阅读全文
摘要:
ios有没有全局宏,或者在工程属性里设置宏?比如我设置了一个宏叫IOS,在所有/整个工程的代码里这个宏都是有效的。------解决方案--------------------在工程的设置属性里搜索preprocessormacros可以看到DEBUG的定义,再添加上自己的就好了也可以在.pch文件里定义------解决方案--------------------可以放到.pch文件里 阅读全文
摘要:
阅读全文
摘要:
开篇:要想理解Block和委托,最快的方法是搞明白“回调函数”这个概念。做为初级选手,我们把Block、委托、回调函数,视为同一原理的三种不同名称。也就是说,现在,我们把这三个名词当成一回事。在这篇文章内,Block就是回调函数,委托也是回调函数,不再作详细的区分了。OK,Action!那么,什么是... 阅读全文
摘要:
要点:1、回调函数就是那些自己写的,但是不是自己来调,而是给别人来掉的函数。(消息响应函数就可以看成是回调函数,因为是让系统在合适的时候去调用。这不过消息响应函数就是为了处理消息的,所以就拿出来单做一类了。其实本质上就是回调函数。)2、回调函数,或简称回调,是指通过函数参数传递到其它代码的,某一块可执行代码的引用。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。这一设计允许了底层代码调用在高层定义的子程序。回调的形式因程序设计语言的不同而不同。(C, C++ and Pascal允许将函数指针作为参数传递给其它函数。其它语言,例 阅读全文
摘要:
问题:NSBundle *bundle = [NSBundle mainBundle]; //取得mainBundleNSString *pathOfPlist = [bundle pathForResource:@"PlistTest-Info" ofType:@"plist"]; //取得文件路径解决方案:单击项目-》Build phases-》找到CopyBundleResources 然后将PlistTest-Info.plist文件添加进来即可。参考:http://www.it165.net/os/html/201301/4327.htmlht 阅读全文
摘要:
XCode工程目录里面,有时你会发现2个不同颜色的文件夹,一种是蓝色的,一种是黄色的,最常见的是黄色的,我也是最近学习html5的时候,发现还有蓝色的文件夹呢,来上图看下吧上图所示,蓝色的是folder 黄色的是group。 那么它们有什么区别呢?1. group 和 folder的区别group 一般只在你的工程中是文件夹的形式,但是在本地的目录中还是以散乱的形式放在一起的,除非你是从外部以group的形式引用进来的。folder只能作为资源,整个引用进项目,不能编译代码,也就是说,以folder形式引用进来的文件,不能被放在complie sources列表里面。2. 以folder的形式 阅读全文
摘要:
1、Xcode4中苹果有自带的SVN软件------>Organizer------>Repositories2、SVN checkout到本地后,删除本地file,对服务器有影响吗?不会影响服务器,当你执行“svn update”时会zai再次被自动下载;当删除后再执行“svn commit”就会在服务器上也对应删除。3、连接服务器点击file-》repositories-》点击坐下边的“+”-》然后名字及svn服务器的地址,还有type选中subversion然后next等等了。4、Xcode4下,SVN中常用命令Commit提交checkout将服务器上下载到本地(我个正在使 阅读全文
摘要:
http://smartsvn.com/features说明场景执行步骤创建新项目一,二,三,四下载项目一,二,四代码提交五代码更新六一,打开SCM在xcode中,点击菜单:File -> Source Control –> Repositories二,连接SVN服务器1,2,配置SVN服务器地址(http://192.168.85.228/svn/repos1)3,输入用户名密码4,配置完成(Root目录表示svn服务器的根目录)三,上传新项目1,点击下边的 ‘Import’ 菜单,然后选择你想上传的项目的根目录这里假设我们选择上传的项目为: demo,则上传结束后,结果如下所示 阅读全文
摘要:
svn更新代码后,打开xcode工程文件,会出现 xxx..xcodeproj cannot be opened because the project file cannot be parsed.因为.xcodeproj工程文件冲突了,然后还是会强制更新,内部文件出现了冲突,所以解析不了文件。会出现这样的冲突消息>>>>>>.r269 解决方法:1.对.xcodeproj 文件右键,显示包内容 2.双击打开project.pbxproj 文件 3.找到以上类似的冲突信息(可以用commad + f 搜索) 4.删除 >>>>> 阅读全文
摘要:
可能使用Mac系统的朋友,在压缩文件时遇到过这样的问题:要给朋友传文件,而对方又是WIN系统。我们打好包传过去以后,对方解压缩发现中文文件名都成乱码了。这是怎么回事?原来,Mac下,默认文字编码是utf-8,而在WIN下是gbk。这样,在WIN下解压Mac打包的文件时,是用gbk来解析utf-8,就出现乱码了。出现问题就得解决!之前我一直用Stuffit进行压缩,格式是.zip,就出现了上面所说的问题。解决方法很简单,换用BetterZip,同时把文件压缩成.rar格式。BetterZip支持压缩rar,但本身不带这个功能需要自己挂插件,也很简单 :下载BetterZip并安装自行下载winr 阅读全文
摘要:
今天向大家介绍一个非常好用的Xcode代码编辑插件,这个插件可以很快速地使代码对齐,有3种模式:“=”对齐、宏定义对齐和属性对齐XAlign效果图1.“=”对齐2.宏定义对齐3.属性对齐安装1.打开终端输入:curl github.so/XAlign/build/install.sh | sh,然后回车;2.下载这个插件包:XAlign.xcplugin3.把下载的插件放到此文件目录下:~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/。选中Finder可以使用快捷键:command + shift + G,前往文件夹。 阅读全文
摘要:
古人云“工欲善其事必先利其器”,打造一个强大的开发环境,是立即提升自身战斗力的绝佳途径!以下是搜集的一些有力的XCode插件。1.全能搜索家CodePilot 2.0你要找的是文件?是文件夹?是代码?Never Mind,CMD+SHIFT+X调出CodePilot,输入任何你想到搜的东西吧!想搜appFinishLaunchingWithOptions?忘记咋拼了?没关系强大的代码搜索能力,appflaun一样也可以找到!超级强大的正则匹配,匹配任何你所想!项目地址:http://codepilot.cc2.Vim控必备的XVimXVim是一个针对Xcode的Vim插件,能让开发者在不放弃任 阅读全文
摘要:
终于有时间停下来玩下Xcode的插件了,最近需要用下规范注释生成器,于是装了个插件用下。下面是安装过程(简单的不得了):1.前往GitHub下载工程文件:VVDocumenter-Xcode2.用Xcode打开工程,Command + BBuild成功后,可以在~/Library/Application Support/Developer/Shared/Xcode/Plug-ins目录下看到生成的xcplugin文件:3.重启Xcode,在某个方法前输入三个“ / ”,自动生成对应的注释:然后tab并保全就可以了。4.打开Xcode菜单,在Window选项下可以看到已经安装的插件:点击打开,可 阅读全文
摘要:
做苹果开发或者果粉对导航条这个东西应该都不陌生,这咚咚在小小的屏幕上通过一个简单的View的队列管理来做到手机界面的有条理管理,但是开发过程程序员可能碰到各种死法,下面分享一二。 例子:MyViewController*sampleViewController = [[[MyViewControlleralloc]initWithXXX]autorelease]; [self.navigationControllerpushViewController:sampleViewControlleranimated:true];[sampleViewController release]... 阅读全文
摘要:
iPhone开发中从一个视图跳到另一个视图有三种方法:1、self.view addSubView:view 、self.window addSubView,需要注意的是,这个方法只是把页面加在当前页面。此时在用self.navigationControler.pushViewController和 pushViewController是不行的。要想使用pushViewController和popViewController进行视图间的切换,就必须要求当前视图是个NavigationController。2、就是使用self.navigationControler pushViewContro 阅读全文
摘要:
typedef作为类型定义关键字,用于在原有数据类型(包括基本类型、构造类型和指针等)的基础上,由用户自定义新的类型名称。在编程中使用typedef的好处,除了为变量取一个简单易记且意义明确的新名称之外,还可以简化一些比较复杂的类型声明。比如:typedef int INT32;将INT32定义为与int具有相同意义的名字,这样类型INT32就可用于类型声明和类型转换了,它和类型int完全相同。比如:INT32a;//定义整型变量a(INT32)b;//将其它的类型b转换为整型既然已经有了int这个名称,为什么还要再取一个名称呢?主要是为了提高程序的可移植性。比如,某种微处理器的int为16位 阅读全文
摘要:
__block 变量一般来说,在block内只能读取在同一个作用域的变数而且没有办法修改在block外定义的任何变量,此时若我们想要这些变数能够在block中被修改,就必须在前面挂上__block的修饰词,以上面第一个例子中的 multiplier 来说,这个变数在 block 中是唯读的,所以 multiplier = 7 指定完后,在 block 中的 multiplier 就只能是 7 不能修改,若我们在 block 中修改 multiplier ,在编辑时就会产生错误,因此若想要在 block 中修改 multiplier ,就必须在 multiplier 前面加上 __block 的 阅读全文
摘要:
最近的工作中比较频繁的用到了Block,不在是以前当做函数指针的替代或者某些API只有Blocks形式的接口才不得已用之了,发现自己对其了解还是太浅,特别是变量的生存期,按惯例还是翻译官方文档,原文链接。介绍Block 对象是C语言层面的语法,也是一个运行时特性. 它们很类似与标准的C函数,但是除了可执行的代码,它们还包含了与自动(栈)或托管(堆)的内存所绑定的变量。因此一个block维护了一系列的状态(即数据),在执行时会改变代码的行为。你可以使用blocks编写函数表达式当参数传入API,也可以将其保存下来用于多线程。Blocks在回调(回调的概念)中非常有用,因为block不仅包含着.. 阅读全文
摘要:
简述:Cocoa框架中的NSPredicate用于查询,原理和用法都类似于SQL中的where,作用相当于数据库的过滤取。最常用到的函数+ (NSPredicate *)predicateWithFormat:(NSString *)predicateFormat, ...;1.比较运算符 > 、= 、= 99"2.范围运算符:IN 、BETWEEN例:@"number BETWEEN {1,5}" @"address IN {'shanghai','nanjing'}"3.字符串本身:SELF例:@&qu 阅读全文
摘要:
NSAssert()只是一个宏,用于开发阶段调试程序中的Bug,通过为NSAssert()传递条件表达式来断定是否属于Bug,满足条件返回真值,程序继续运行,如果返回假值,则抛出异常,并切可以自定义异常描述。NSAssert()是这样定义的:#define NSAssert(condition, desc)condition是条件表达式,值为YES或NO;desc为异常描述,通常为NSString。当conditon为YES时程序继续运行,为NO时,则抛出带有desc描述的异常信息。NSAssert()可以出现在程序的任何一个位置。具体事例如下:生成一个LotteryEntry对象时,传入的N 阅读全文
摘要:
开始:Block 简介Block 是 iOS 4.0 和 Mac OSX 10.6 引入的一个新特性。 Block 可以极大的简化代码。 他们可以帮助你减少代码, 减少对代理的依赖, 并且写出更加简洁,可读性强的代码。即使有这么多好处, 还是有很多开发者没有使用 Block, 因为他们不知道如何使用。 但是 Block 绝对是你作为一个 Objective-C 程序员,一定会想要掌握的技能。让我们来看看 Block 是谁, 是什么,在哪里用它, 为什么用它, 还有什么时候用它。Block 是什么东西,它为什么那么重要?Block 的核心就是一段可以在以后的时间里执行的代码。Block 是fir 阅读全文
摘要:
单例(单态)模式单例设计模式确保对于一个给定的类只有一个实例存在,这个实例有一个全局唯一的访问点。它通常采用懒加载的方式在第一次用到实例的时候再去创建它。注意:苹果大量使用了此模式。例如:[NSUserDefaults standardUserDefaults], [UIApplication sharedApplication], [UIScreen mainScreen], [NSFileManager defaultManager],所有的这些方法都返回一个单例对象。你很可能会想为什么这么关心是否一个类有多个实例?毕竟代码和内存都是廉价的,对吗?有一些情况下,只有一个实例显得非常合理。举 阅读全文
摘要:
创建一个单例很多办法。我先列举一个苹果官方文档中的写法。[cpp]view plaincopystaticAccountManager*DefaultManager=nil;+(AccountManager*)defaultManager{if(!DefaultManager)DefaultManager=[[selfallocWithZone:NULL]init];returnDefaultManager;}当然,在iOS4之后有了另外一种写法:[cpp]view plaincopy+(AccountManager*)sharedManager{staticAccountManager*sh 阅读全文
摘要:
苹果的消息机制是个非常好用的东西,当需要在类的各个实例之间传递消息或者写一些事件驱动的程序时,绝对是个不错的工具。但是使用时一不小心就会造成引用已经被dealloc的对象的错误,引起程序崩溃。于是,在合适的时机addobserver和removeobserver就是个很关键的事情。下面,分几种情况来阐述一下自己的一点想法。一,使用defaultcenter。简单的情况下,若自己没有太多的消息需要注册和处理,直接使用[NSNotificationCenter defaultCenter]来调用默认的消息中心就够用了。如果,有一些特殊的要求那么,就需要试一下一个继承自NSnotificationc 阅读全文
摘要:
Iphone的常用控件有哪些?看看下面一 视图UIView和UIWindowiphone视图的规则是:一个窗口,多个视图。UIWindow相当于电视机,UIViews相当于演员。1.显示数据的视图下面几个类可在屏幕上显示信息:UITestView:将文本段落呈现给用户并/允许用户使用键盘输入自己的文本。可设置可编辑或不可编辑,使用单一字号和单一字体。UILabel:实例呈现段的只读文本视图。UIImageViews:显示图片。UIWebWiew:显示HTML,PDF或其他高级Web内容。MKMapViews:想应用程序中嵌入地图。UIScrollView:实例支持呈现比正常应用程序窗口大小大一 阅读全文
摘要:
Cocoa框架是iOS应用程序的基础,了解Cocoa框架,对开发iOS应用有很大的帮助。1、Cocoa是什么?Cocoa是OS X和 iOS操作系统的程序的运行环境。是什么因素使一个程序成为Cocoa程序呢?不是编程语言,因为在Cocoa开发中你可以使用各种语言;也不是开发工具,你可以在命令行上就可以创建 Cocoa程序。Cocoa程序可以这么说,它是由一些对象组成,而这些对象的类最后都是继承于它们的根类 :NSObject。而且它们都是基于Objective-C运行环境的。1.1、Cocoa框架iOS中,Cocoa众多框架中最重要最基本的两个框架是:Foundation 和 UIKit。 F 阅读全文
摘要:
委托的意义在于实现多态;在于让对象能够在程序运行时满足外界对其的改变。(1)一个对象属性、动作,如果在编译时就能确定,可以在这个对象的类里面来实现。(2)一个对象的属性、动作,如果在运行时才能确定,则只能通过这个对象的委托来实现。换句话说:类,满足编译时对对象的设置和要求。委托,用于满足运行时对对象的设置和要求。举个例子:UITableView 的一个实例对象 tableView。当我们在使用tableView时,我们在编译的时候就能确定下来这个表格的分割线颜色(separatorColor)、分割线风格(separatorStyle)、背景图片(backgroundView)等。还有一些,我 阅读全文
摘要:
翻译文档上的
bounds是指这个view在它自己坐标系的坐标和大小 而frame指的是这个view在它superview的坐标系的坐标和大小
区别主要在坐标系这一块。 很明显一个是自己为原点的坐标系,一个是以屏幕为原点的坐标系。绝对坐标。。。相对坐标。。。比如屏幕旋转的时候就要以相对来重绘。
frame 如果一个按钮,是在表格里,按钮的frame 的坐标也是相对的,并不是相对屏幕,也就是说是相对坐标,不是绝对坐标 我也想知道任何一个uiview如何求得它在屏幕上的坐标。 view 的frame是view在它的super view 的位置与尺寸。
view 的bounds可以用来帮助它的... 阅读全文
摘要:
首先新建一个基于Sigle view Application的项目,名为GestureTest;我的项目结构如下:往viewController.xib文件里拖动一个imageView,并使覆盖整个屏幕,改动属性为:viewController.h文件:[cpp]viewplaincopy1.#import2.3.@interfaceViewController:UIViewController{4.IBOutletUIImageView*imageView;5.}6.@property(nonatomic,retain)IBOutletUIImageView*imageView;7.@end 阅读全文
摘要:
这是一个观察者模式。首先在你需要监听的类中加入观察者:- (void)addObserver:(id)observer selector:(SEL)aSelector name:(NSString *)aName object:(id)anObject;这个观察者在监听到anObject发送名字为aName的notification时,调用selector的方法,在aSelector方法中得到userInfo。anObject表示从谁那儿发送出来的消息。比如:[[NSNotificationCenterdefaultCenter]addObserver:selfselector:@select 阅读全文
摘要:
转:http://www.2cto.com/kf/201401/269467.html用block可以定义任意的代码片段,将其像对象一样传入另一个方法;它是c级别的语法,和C语言中的函数指针非常相似。在C语言中,函数指针和block写法分别如下12int (* func1)(int a, int b);//c函数指针返回类型 | 函数名 | 参数12int (^backValue)(int num);//block返回类型 | 方法名 | 参数从表面来看两者唯一的区别就在于*和^。通常来说,block都是一些简短代码片段的封装,适用做工作单元,通常用来做并发任务、遍历以及回调。block对象也 阅读全文
摘要:
解决方法:选择项目名称----->Targets----->Build Settings----->Search Paths----->Library Search Paths删除对应路径ld: warning: directory not found for option“XXXXXX”很奇怪,为什么已经从项目中删除了文件和文件夹还是报这个警告呢?去掉警告的办法如下:1选择工程, 编译的 (targets)2选择 Build Settings 菜单3查找 Library Search Paths 和 Framework Search Paths, 删掉编译报warni 阅读全文
摘要:
1.增加字段 alter table docdsp add dspcodechar(200)2.删除字段 ALTER TABLE table_NAME DROP COLUMNcolumn_NAME3.修改字段类型 ALTER TABLE table_name ALTER COLUMNcolumn_name new_data_type4.sp_rename 改名EXEC sp_rename '[dbo].[Table_1].[filedName1]', 'filedName2', 'COLUMN'更改当前数据库中用户创建对象(如表、列或用户定义数据 阅读全文
摘要:
在工作中,我们常常遇到两种人,一种是先提要求后干活,另外一种是有能力,负责任,喜欢先干出结果,但又不主动提要求的人。 对于第一种人,现在已经有很多的管理办法。但是对于第二种人,往往并不是那么容易留得住的。因为这些人一般不提要求,一旦提了,多数就是要离开了。 根据个人的经验,我建议对这两种人要进行区别看待。对第一种人最好是让他拿结果说话,为他的结果付钱。而对于第二种人,则应该提前为他的潜力付钱。 每当他到达一个新的高度或层次时,就要及时地将待遇提上来,他会自热地开启匹配模式,以让自己的工作对得起自己拿的钱。如果对第一种人使用这种方法,则可能会起到反的效果,让其胃口大开欲壑难填。 所以... 阅读全文
摘要:
if(![[NSUserDefaults standardUserDefaults] boolForKey:@"firstStart"]){ [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"firstStart"]; NSLog(@"第一次启动"); }else{ NSLog(@"不是第一次启动"); } 阅读全文
摘要:
若使用SQLite API時,出現错误代码21(misuse),可能是你的SQLiteConnection同時打開(Open)了兩個相同的Data source,所造成的错误。解決方法:检查代码是不是重复openDatabase了。 阅读全文
摘要:
分享一段ios数据库代码。包括创建、升级、增删查改。里面的那些类不必细究,主要是数据库的代码100%可用。数据库升级部分,使用switch,没有break,低版本一次向高版本修改。// DB.h//iukey#import #import "sqlite3.h"#import "User.h"#import "ChatInfo.h"#import "DescInfo.h"@interface DBHelper : NSObject{ sqlite3* db;//数据库句柄// @public DBHelper *i 阅读全文
摘要:
原文:View Programming Guide for iOS 1 Introduction 先熟悉一下基本概念. Window Windows do not have any visible content themselves but provide a basic container for your application’s views. Every appli... 阅读全文
摘要:
阅读全文