![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
IOS
wangqiuyun
超越自己
展开
-
int,NSInteger,NSUInteger,NSNumber
1.当需要使用int类型的变量的时候,可以像写C的程序一样,用int,也可以用NSInteger,但更推荐使用NSInteger,因为这样就不用考虑设备是32位的还是64位的。2.NSUInteger是无符号的,即没有负数,NSInteger是有符号的。3.有人说既然都有了NSInteger等这些基础类型了为什么还要有NSNumber?它们的功能当然是不同的。 NSInteger是基础转载 2012-04-27 00:21:47 · 1811 阅读 · 0 评论 -
(译)使用cocos2d、LevelHelper和SpriteHelper实现疯狂考拉(Part 3)
PS:关于cocos2d国外有很多不错的教程网站,http://highoncoding.com/也是其中一个,看了他们8月17发的疯狂考拉教程,其实主要是用到了LevelHelper和SpriteHelper这两个工具,还有SneakyInput做的摇杆以及一点点的box2d,其实子龙山人很早之前也翻译过类似的文章,不过我都忘了,自己尝试翻译了一下,重温这些工具的使用,郑重声明:由于本人英语水平翻译 2012-09-19 16:44:15 · 3101 阅读 · 0 评论 -
iPhone开发 判断当前的网络是3g还是wifi
1.添加framework:将SystemConfiguration.framework 添加进工程。2.下载Reachabilityhttps://developer.apple.com/library/ios/samplecode/Reachability/Reachability.zip 复制里面的Reachability.h和Reachability.m到项目中。3.调转载 2012-09-19 13:23:39 · 7172 阅读 · 0 评论 -
(译)使用cocos2d、LevelHelper和SpriteHelper实现疯狂考拉(Part 2)
PS:关于cocos2d国外有很多不错的教程网站,http://highoncoding.com/也是其中一个,看了他们8月17发的疯狂考拉教程,其实主要是用到了LevelHelper和SpriteHelper这两个工具,还有SneakyInput做的摇杆以及一点点的box2d,其实子龙山人很早之前也翻译过类似的文章,不过我都忘了,自己尝试翻译了一下,重温这些工具的使用,郑重声明:由于本人英语水平翻译 2012-09-18 16:09:11 · 2814 阅读 · 0 评论 -
(译)使用cocos2d、LevelHelper和SpriteHelper实现疯狂考拉(Part 1)
PS:关于cocos2d国外有很多不错的教程网站,http://highoncoding.com/也是其中一个,看了他们8月17发的疯狂考拉教程,其实主要是用到了LevelHelper和SpriteHelper这两个工具,还有SneakyInput做的摇杆以及一点点的box2d,其实子龙山人很早之前也翻译过类似的文章,不过我都忘了,自己尝试翻译了一下,重温这些工具的使用,郑重声明:由于本人英语水平翻译 2012-09-14 15:23:54 · 4802 阅读 · 0 评论 -
推箱子简单实现(objective-c)
推箱子大家都知道吧,在cocos2d上简单实现了一个!typedef enum{ None=-1, Wall=0, Worker, Box, Passageway, Destination, WorkerInDest, RedBox,} Map_State;//代表堆栈长度#define MaxNum 300这原创 2012-09-13 10:06:53 · 3767 阅读 · 0 评论 -
(译)如何做一个塔防游戏(cocos2d 2012-8-17)
PS:一直关注http://www.raywenderlich.com/这个网站,前几天看了他们8月17发的一个塔防游戏教程,试了一下感觉不错,搜了一下没发现没有译成中文的(不知道现在有没有),就自己尝试翻译了一下,由于本人英语水平比较烂,翻译水平肯定不怎地,各位就凑合看吧,大体能看懂就行,呵呵。原文链接地址:http://www.raywenderlich.com/15730/how-t翻译 2012-09-11 23:05:53 · 6226 阅读 · 0 评论 -
IOS开发中一些重要提示笔记
1、空值处理不当是引起程序错误乃至崩溃的重要原因之一。2、有效减少内存使用是开发软件时第一优先级的事情。3、在类的dealloc()函数中一定要将[super dealloc]放到最后一行。4、将类的成员变量作为类内部私有数据,而将类属性作为外部可访问的公有数据。5、使用@protocol模式时,需要注意的是,如果你的对象是另外一个对象的delegate,那么你的对象relea原创 2012-09-09 23:51:56 · 1947 阅读 · 0 评论 -
Object-C中nil, NULL和NSNull
控制处理不当是引起程序错误乃至崩溃的重要原因之一。因为Object-C的集合对象,如NSArray、NSDictionary、NSSet等,都有可能包含NSNull对象,所以,如果一下代码中的item为NSNull,则会引起程序崩溃。NSString *item=[NSArray objectAtIndex:i];if([item isEqualToString:@"TestNumb原创 2012-09-06 23:12:12 · 12782 阅读 · 0 评论 -
(译)一个cocos2d节点不显示的各种原因
这是Learn.cocos2d.Game.Development.with.iOS.5这本书作者Steffen Itterheim写的一篇文章,也收录在了这本书中,我尝试翻译了一下,由于水平有限,还有一些地方翻译得不是很清楚,特别是Node Vertex Z和Node custom draw #2 (visit)这两段,有理解错的地方还请各位指正!原文地址:http://www.learn-c翻译 2012-09-22 21:52:29 · 4976 阅读 · 0 评论 -
在IOS应用中打开另外一个应用的解决方案
最近要在IOS中实现一个应用启动另外一个应用的功能,搜了一些资料,使用UIApplication的openURL:的方法就能实现,现在整理和大家分享一下!注册自定义URL协议首先被启动的应用需要向iPhone注册一个自定义URL协议。这是在你的项目文件夹的info.plist文件进行的(就是你改变应用程序图标的同一个文件)。Step1. 右键,选择“Add Row”Step2. K原创 2012-10-17 17:06:59 · 31128 阅读 · 0 评论 -
GCD编程学习笔记
一、相关概念 GCD全称Grand Central Dispatch,是Apple提供的一套低层API,提供了一种新的方法来进行并发程序编写。GCD有点像NSOperationQueue,但它比NSOpertionQueue更底层更高效,并且它不是Cocoa框架的一部分。GCD的API很大程度上基于block,当然,GCD也可以脱离block来使用,比如使用传统c机制提供函数指针和上原创 2014-02-14 16:37:36 · 7845 阅读 · 2 评论 -
libsqlite3.dylib与libsqlite3.0.dylib区别
今天试了一下iPhone Sqlite3数据库实例操作,发现一个有意思的问题,就是在加Framework时,有些教程说加libsqlite3.dylib有些说加libsqlite3.0.dylib,那到底加哪个呢?经过百度和谷歌得答案如下: 实际上libsqlite3.dylib本身是个链接,它指向libsqlite3.0.dylib。也就是说在项目里如果你添加libsqlite原创 2012-03-12 17:35:08 · 16475 阅读 · 5 评论 -
IOS最新新浪微博开放平台Oauth2.0授权获取Access_Token
很久没写博客,最近在搞一个新浪微博的第三方应用,涉及到了Oauth2.0授权获取Access_Token,特此记录分享!步骤一:添加应用进入新浪微博开放平台(没有的话自行注册),进入“管理中心“,点击”创建应用”,选择“微链接应用”,再点击“创建应用”,,选“移动应用”,填写相应的信息,其中应用地址没有的话可随便,勾选平台后提交。注意保存你的App Key和App Secret以备后用。原创 2014-01-15 14:55:44 · 22746 阅读 · 4 评论 -
cocos2d游戏添加本地通知
最近游戏要上本地通知,其实就是UILocalNotification这个东东,它的功能实现比较简单,但是用途很广,最大的用途就是阶段性的让用户回归我们的游戏中,直接上代码:- (void)applicationDidBecomeActive:(UIApplication *)application { //从后台返回,先取消原有的通知再发送新的通知 NSLog(@"从后台返回,原创 2012-11-13 12:59:18 · 3071 阅读 · 0 评论 -
objective-c宏定义
1、先来几个常用的:// 是否高清屏#define isRetina ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 960), [[UIScreen mainScreen] currentMode].size) : NO)// 是否模拟器原创 2012-10-23 22:25:09 · 29051 阅读 · 0 评论 -
IOS下计算日期时间间隔
IOS下计算日期时间间隔: //创建日期格式化对象 NSDateFormatter *dateFormatter=[[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm"]; //创建了两个日期对象 NSDate *date1=[dateFormatter dateFromSt原创 2012-10-30 16:08:25 · 21165 阅读 · 0 评论 -
ios6下cocos2d截屏失效问题处理
相信使用cocos2d官方论坛提供的截屏方法,或者其他使用openGL方式截屏的同志们,会发现在iOS6系统的真机上截图为全黑色,但是在其他版本系统的真机上没问题,而且在模拟器上也没问题,包括iOS6的模拟器。网上狂搜了一把,解决方案如下:第一种:设置GLView的preserveBackbuffer属性值为YES:在AppDelegate.m文件中找到: EAGLView *gl原创 2012-10-29 22:42:40 · 3749 阅读 · 0 评论 -
IOS6下cocos2d 1.0项目两个bug修复
无法正常游戏横屏首先在你项目根目录找到AppController.m 类,然后找到如下代码:// Set RootViewController to window [window addSubview: viewController.view]; 然后将其替换成如下代码: // Set RootViewController to window if原创 2012-10-18 18:20:10 · 3854 阅读 · 1 评论 -
C#生成plist文件
在IOS开发过程中,一些应用包括游戏为了生成不同的场景布局很多时候都会使用plist作为配置文件,先由设计人员设计好布局,再按照布局创建plist文件,最后供程序开发人员调用,这是一个段很简单的C#生成plist文件的代码和大家分享一下,主要涉及XmlTextWriter的使用。(PS:plist文件本身就是XML文件) private void saveFileDialog原创 2012-08-26 16:27:56 · 3434 阅读 · 0 评论 -
方块总动员消图算法(Objective-c)
之前贴过一个连连看两图连通的检测算法,今天再贴一个方块总动员消图算法,坐标系如下图:方块总动员玩法很简单,点到同类型方块的十字交叉点便可消除,这里我用Objective-c实现了一个,由于之前连连看,我没有把游戏的初始化代码贴出来,其实这两者初始化有点类似我就在这里加上,代码如下://初始化函数-(void) intiGameConfig{ BLANK_STATE=-1;/原创 2012-09-02 16:09:26 · 3058 阅读 · 0 评论 -
cocos2d 使用UITextField
其实主要是两行代码: UITextField *inputTextField = [[UITextField alloc] initWithFrame:CGRectMake(50,50,140,30)]; [[[CCDirector sharedDirector] openGLView] addSubview:inputTextField];但是一原创 2012-08-06 16:59:15 · 4410 阅读 · 0 评论 -
因IOS版本导致的模态视图控制器dismissModalViewControllerAnimated调用问题
今天用模态视图控制器(Modal View Controller)时遇到了一个很狗血的问题,按理说presentModalViewController和dismissModalViewControllerAnimated应该成对出现,一般情况下presentModalViewController会在parentViewController被直接调用,用来弹出一个新视图;而dismissModalV原创 2012-07-03 17:01:32 · 7895 阅读 · 0 评论 -
Objective-C中nil与release的区别与用法
做IOS开发的估计都对Objective-C的内存管理机制很头疼,一不小心程序就会出内存泄露,我也不例外,前几天被指针的置nil与release给搞惨了,今和大家详细解说一下有关Objective-C中nil与release的区别与用法。 首先说一下他们两的作用,nil就是把一个对象的指针置为空,只是切断了指针与内存中对象的联系,它对内存的释放没有什么作用;而release才是真正用于内原创 2012-06-18 18:35:47 · 7835 阅读 · 9 评论 -
Cocos2d中从场景切换到UIViewController视图方法总结
第一种:直接从场景切换到UIViewController视图(网上流传的版本)- (void) showUIViewController:(UIViewController *) controller{ [[Director sharedDirector] pause]; [UIView beginAnimations:nil context:NULL]原创 2012-02-24 00:29:27 · 9068 阅读 · 3 评论 -
cocos2d碰撞检测及注意事项
检测函数:- (void)update:(ccTime)dt {NSLog(@"start......")NSMutableArray *projectilesToDelete = [[NSMutableArray alloc] init];for (CCSprite *projectile in _projectiles) {CGRect projectileRect = C原创 2012-04-21 14:15:07 · 4436 阅读 · 2 评论 -
CCCallFuncND的void指针的理解
最近游戏游戏做了内存测试,一堆内存泄露,看了头就大,只怪当初写代码的时候没好好写,现在那个后悔啊!昨天同事说可能CCCallFuncND也出列点问题,后来我看了一下,顺便查了一下有关CCCallFuncND的定义,在cocos2d中的:CCCallFuncND *callFun = [CCCallFuncND actionWithTarget:(id) selector:(SEL) dat原创 2012-06-12 11:23:08 · 3203 阅读 · 1 评论 -
Objective-C中根据函数名调用函数
Objective-C中调用函数的方法是“消息传递”,这个和普通的函数调用的区别是,你可以随时对一个对象传递任何消息,而不需要在编译的时候声明这些方法。所以Objective-C可以在runtime的时候传递消息。主要用到:SEL和@selector,当然还有performSelector看例子:先是三个函数:-(void)CallBack0{ NSLog(@"Cal原创 2012-04-23 15:36:39 · 13582 阅读 · 2 评论 -
performSelector延时调用导致的内存泄露
前几天在给游戏做收尾测试时,发现了一个关于内存泄露的问题,一直没找着问题所在,经过反复调试和查找资料今天终于解决了,特此记录下来以免以后再犯!关于objective-c的内存管理,我们都知道一个原则就是“谁创建,谁释放”,换句话说,不是我们创建的,就不用我们去释放。但是实际上objective-c的内存管理远远没那么简单,我的情况是这样的:我在debug模式下面用CCLOG在dealloc原创 2012-05-21 17:04:19 · 12503 阅读 · 7 评论 -
cocos2d中CCSprite的使用总结
一、精灵创建及初始化1、从图片文件创建:CCSprite *sprite = [CCSprite spriteWithFile:@"Icon.png"];2、从帧缓存创建:[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"MineSweeping.plist"];CCSprite *原创 2012-08-08 13:00:16 · 3187 阅读 · 0 评论 -
cocos2d子层访问父层的三种方法
情景设定:父层HelloWorldLayer有一个方法-(void) setlable;需要被其子层SecondLayer访问。第一种、半单例方法:首先在HelloWorldLayer.h声明+(HelloWorldLayer*) shareLayer+(HelloWorldLayer*) shareLayer;然后在HelloWorldLayer.m加入:#i原创 2012-08-07 13:48:18 · 2439 阅读 · 0 评论 -
连连看两图连通检测算法(Objective-c)
连连看两图连通检测算法,折腾了一天总算弄出来了,首先必须要明白我这里的坐标系,如图:连连看连通方式主要有三种,一种是直线连通,第二种是带一个直角的连通,第三种是带两个直角的连通,其中第三种连通可以化解为第二种连通检测,同理第二种连通可以化解为第一种连通检测,我这里主要讲检测算法,至于图的生成什么的就不多说了,算法用到一些变量说明如下: // int BLANK_原创 2012-08-23 00:00:39 · 4467 阅读 · 0 评论 -
IOS应用开发Icon规格自动裁剪器(C#)
这几天折腾一个IOS应用的Icon,一个版本就要生成好几种规格分辨率的Icon,起初使用PS什么的一个一个生成,后来Icon改一版本又得重新生成一次,很是费劲,干脆自己写个程序来干这活得了,思路很简单,先导入一张大图(注意:这张图必须大于等于512*512),然后生成对应像素的小图,最后保存出来。这里我使用C#来写,主要是考虑到C#里Bitmap类有一个GetThumbnailImage()方原创 2012-08-19 00:51:32 · 2957 阅读 · 3 评论 -
IOS应用程序多语言本地化解决方案
最近要对一款游戏进行多语言本地化,在网上找了一些方案,加上自己的一点点想法整理出一套方案和大家分享!多语言在应用程序中一般有两种做法:一、程序中提供给用户自己选择的机会;二、根据当前用户当前移动设备的语言自动将我们的app切换对应语言。第一种做法比较简单完全靠自己的发挥了,这里主要讲第二种做法,主要分一下几点:1.本地化应用程序名称2.本地化字符串3.本地化图片4.原创 2012-08-17 00:34:34 · 51309 阅读 · 24 评论 -
cocos2d使用半单例
cocos2d: 使用半单例把MultiLayerScene设置成半单例,目的是让别的对象可以直接访问MultiLayerScenestatic MultiLayerScene* multiLayerSceneInstance;+(MultiLayerScene*) sharedLayer{ NSAssert(multiLayerSceneInstance != ni原创 2012-07-30 10:38:42 · 1415 阅读 · 1 评论 -
Cocos2d中添加手势支持的三种方法
最近一直琢磨在Cocos2d里添加手势的功能,找了一些资料加上自己的理解,整理出了三种方法和大家分享。第一种,很简单,就是知易cocos2d-iPhone教程-04所介绍的(其实这并不是真正的手势,只是也能实现部分手势功能而已),代码如下:1) 单击、双击处理- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)eve原创 2012-07-28 14:34:42 · 4672 阅读 · 5 评论 -
Xcode 常用快捷键及代码自动排版
Xcode常用快捷键,网上找的总结一下,特别是格式化代码隐藏xcode command+h退出xcode command+q关闭窗口 command+w关闭所有窗口 command+option+w关闭当前项目 command+control+w关闭当前文件 command+shift+w保存文件 command+s保存所有文件 command+option+s原创 2012-08-11 00:12:45 · 71072 阅读 · 4 评论 -
cocos2d中实现触摸按钮换图效果方案
主要原理是当TouchBegan时根据按钮下的坐标把对应按钮换成按下的效果图,当TouchMoved时根据移动previousLocationInView坐标取消对应按钮的按下效果图,即把按钮还原成未按下的图,当TouchEnded时根据抬手的坐标取消对应按钮的按下效果图,也即把按钮还原成未按下的图,直接上代码:-(id) init{ // always call "super" in原创 2012-08-10 16:40:19 · 4431 阅读 · 1 评论 -
cocos2d精灵与动画
总结一些精灵与动画操作的方法,其实主要是对CCSpriteFrameCache和CCAnimationCache的理解与使用[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"Jiangshi_Zoulu.plist"];//根据一个plist文件名构建CCSpriteFrame对象并添加到内存池中。原创 2012-08-10 13:23:27 · 1875 阅读 · 0 评论 -
AFNetworking 3.0携带参数上传文件Demo
一、服务端代码:服务端是java用国产nutz搞的,实际mvc框架都大同小异,就是提交文件的同时还带了个表单参数 @AdaptBy(type=UploadAdaptor.class, args={"${app.root}/WEB-INF/tmp/user_avatar", "8192", "utf-8", "20000", "102400"}) @At @Aop("redis") publi原创 2015-12-08 16:27:46 · 20939 阅读 · 1 评论