
iOS
文章平均质量分 64
trandy
这个作者很懒,什么都没留下…
展开
-
xCode4里面设置NSZombieEnabled
今天看到偶然间看到一篇blog,“用NSZombieEnabled解决恼人的EXC_BAD_ACCESS错误”。很实用的技巧,便拿来试验一下。原文是在XCode3里面设置的,so在4里面完全找不到地方。stackoverflow搜一下,找到如下方法。菜单里Product->EditScheme->Run->Environment Variables, 添加NSZombieEnabled转载 2012-07-27 12:48:08 · 661 阅读 · 0 评论 -
自定义软键盘上的Return键的文本
#import typedef void(^DoneActionBlock)(id);@interface CustomeTextField : UITextField@property(nonatomic,retain) UIButton* doneButton;@property(nonatomic,retain) NSString* buttonTitle;@propert原创 2013-01-11 12:47:47 · 22642 阅读 · 3 评论 -
关于NSString和NSMutableString的retainCount
1. 字符串常量NSString *s = @"test";NSLog(@"s:%lx",[s retainCount]); //ffffffffffffffff(即UINT_MAX ( Maximum value an `unsigned int'))因为"test"为字符串常量,系统不会收回,也不会对其作引用计数,即使我们对s如何retain或release。转载 2013-01-22 12:45:34 · 708 阅读 · 0 评论 -
自定义UITableViewCell上的delete按钮
1.通过UITableViewDelegate方法可以实现删除 tableview中某一行 //滑动删除-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)inde转载 2013-02-27 11:31:02 · 683 阅读 · 0 评论 -
计算字符串长度(处理emoji表情)
-(int)getFinalStringLength:(NSString*)inputString characterCount:(int)allCount{ if (nil == inputString || [inputStringisEqualToString:@""]) { return 0; } __blockint coun转载 2013-04-02 13:47:53 · 8981 阅读 · 0 评论 -
iOS游戏如何防御外挂及IAP破解
今年3月初写过一篇《iO平台游戏安全小议》,到现今已有7个月了。在这段时间内,iOS平台上的安全问题也产生了不小的变化。从作弊方式来说,从以前稍有门槛的手工操作(命令行操作)发展成了傻瓜式的只需要点击按钮的外挂工具的普及,使得作弊方式可以大量的泛滥。从防御方式来说,发展虽然缓慢,但也有了一定的有效对策。 游戏,无论是运行在哪个平台,PC机,掌机,街机,电视还是手机上?无论是单机,弱联网的转载 2013-03-22 14:08:16 · 1934 阅读 · 0 评论 -
iOS平台游戏安全再议之存档修改与防御
一款游戏,如果免费功能做得足够吸引,那玩家下一步就会想要尝试收费部分。这时候,单纯玩家会走上正常付费路线,而较为吝啬的玩家则会尝试搜寻该款游戏的外挂,比如说xxx破解版,xxx完整版,xxx补丁,xxx存档,xxx辅助。 对于iOS游戏,玩家首先会在比较火的论坛里去搜索。我们试着用关键字“修改” 在这个论坛进行搜索,可以找到很多iOS游戏的修改攻略,说不定有一个就是你转载 2013-03-22 14:53:07 · 5228 阅读 · 0 评论 -
FlurryAnalytics for ios
Flurry 是第三方的工具,包括三个部分,数据分析工具,广告,视频广告.对于一般的开发来说使用第一种就就足够了. FlurryAnalytics可以上官网去看的参考文档,全是英文的,不过内容也不是很多,很快就能熟悉,然后在和自己的业务联系起来,能很快上手.这里就自己这几天研究的情况记录下:1: 首先注册,注册完了后下载sdk. sdk里面带有说明文档和appkey转载 2013-04-18 10:58:13 · 740 阅读 · 0 评论 -
iphone图片拉伸的几种方法
系统至ios6之后,关于图片拉伸的方法已经扩展至3个函数: 1.ios4提供的方法: - (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCapHeight 这个函数是UIImage的一个实例函数,它的功能是创建一个内容可拉伸,转载 2013-05-06 12:14:34 · 948 阅读 · 0 评论 -
从NSString中提取数字 NSScanner
-(int)findNumFromStr{ NSString *originalString = @"a1b2c3d4e5f6g7h8i9j"; // Intermediate NSMutableString *numberString = [[[NSMutableString alloc] init] autorelease]; NSString *t原创 2013-08-16 16:03:41 · 14402 阅读 · 1 评论 -
文本输入 有效性检测 相关
正则表达式检测邮箱格式:- (BOOL)validateMailAddressFormat:(NSString*)emailStr;{ NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}"; NSPredicate *emailTest = [NSPredicate pre原创 2013-01-22 22:01:42 · 1260 阅读 · 0 评论 -
NSString NSCFString isMemberOfClass 遇到的相关的问题
Toll Free Bridging一.Toll-free bridging介绍Toll-free bridging,简称为TFB,是一种允许某些ObjC类与其对应的CoreFoundation类之间可以互换使用的机制。比如 NSString与CFString是桥接(bridged)的, 这意味着可以将任意NSString当做CFString使用,也可以将任意的CFString当做转载 2013-01-22 12:23:36 · 5786 阅读 · 0 评论 -
解决 Undefined symbols for architecture
遇到这种问题,可能是因为某些文件没有被加到编译的路径中。使用下列操作,添加找不到的文件到编译路径:点击展开 Compile Sources,点击+号,添加找不到的文件即可原创 2012-09-05 14:54:28 · 566 阅读 · 0 评论 -
cocos2d iPad游戏移植到iphone最简单的方式(缩小OpenGLView)
//Add this code after "make the OpenGLView a child of the view controller" in the AppDelegate.m//This will shrink the content of the ipad to fit on the iphone smoothly.if (UI_USER_INTERFACE_IDIOM(转载 2012-11-01 12:41:46 · 1860 阅读 · 6 评论 -
条件表达式 objective c可用
用条件运算符构成一个条件表达式,又常常用条件表达式构成一个赋值语句,其一般形式如下: x=表达式1?表达式2:表达式3 其意义是:先求解表达式1,若为非0(真),则求解表达式2,将表达式2的值赋给x。若表达式1的值为0(假),则求解表达式3,将表达式3的值赋给x。例如: min=(a 输出的结果是将a和b二者中较小者赋给min。转载 2012-11-07 10:39:53 · 1120 阅读 · 0 评论 -
iOS __block
iOS4已经直接支持blocks,很有必要学习一下。在ios,blocks是对象,它封装了一段代码,这段代码可以在任何时候执行。Blocks可以作为函数参数或者函数的返回值,而其本身又可以带输入参数或返回值。它和传统的函数指针很类似,但是有区别:blocks是inline的,并且它对局部变量是只读的。Blocks的定义: [cpp] view转载 2012-11-06 16:33:47 · 1516 阅读 · 0 评论 -
设置文字并调整UIButton里面的文字位置
不使用alloc初始化:_battleBtn = [UIButton buttonWithType:UIButtonTypeCustom];设置文字:[_battleBtn setTitle:@"挑战TA" forState:UIControlStateNormal];设置背景:[_battleBtn setBackgroundImage:battleB原创 2012-11-20 15:48:43 · 5494 阅读 · 1 评论 -
iOS实现截屏 并合适保存
开发游戏时,往往会有这么一个需求:在某个成就达成或者破纪录时,需要截个屏,然后发送到微博上与好友/粉丝分享,虽然home + 开机键组合可手动截屏,在Cocos2d有个CCRenderTexture类,借助该类可很容易实现代码截取功能。使用CCRenderTexture,我们可以截取游戏场景、某个Layer,甚至是精灵:/**游戏截图 *@param n转载 2012-08-03 11:30:31 · 20025 阅读 · 2 评论 -
旋转翻转UIImage 不是UIImageView 适用于源图像的处理,例如截图后旋转
+(UIImage *)rotateImage:(UIImage *)aImage{ CGImageRef imgRef = aImage.CGImage; CGFloat width = CGImageGetWidth(imgRef); CGFloat height = CGImageGetHeight(imgRef); CGAffineTransform t转载 2012-11-21 11:15:34 · 6334 阅读 · 0 评论 -
iOS高级教程:处理1000张图片的内存优化
转载请保留以下原文链接:http://my.oschina.net/taptale/blog/91894一、项目需求在实际项目中,用户在上传图片时,有时会一次性上传大量的图片。在上传图片前,我们要进行一系列操作,比如:旋转图片为正确方向,压缩图片等,这些操作需要将图片加载到内存中,下面对内存的使用做详细分析.二、内存分析,非优化我在测试项目中,重复加载了转载 2012-12-28 10:03:21 · 4910 阅读 · 1 评论 -
iOS 设置字体 自定义字体
1.网上搜索字体文件(后缀名为.ttf,或.odf)2.把字体库导入到工程的resouce中3.在程序添加以下代码 输出所有字体NSArray *familyNames = [UIFont familyNames]; for( NSString *familyName in familyNames ){ printf( "Family:转载 2012-12-21 16:33:21 · 6181 阅读 · 0 评论 -
那些被遗漏的Objective-C保留字
今天翻到很久以前自己在网易博客上写的这篇文章,惊奇地发现自己都忘记了里面的一些内容。所以我又重新学习了一下,然后改了改内容,挪到这里。前言Steffen Itterheim是《Learn Iphone and Ipad Cocos2d Game Development》作者。cocos2d和cocos2d-x现在已成为著名的游戏开发引擎。在AppStore上有超过100个游戏是转载 2013-09-26 17:43:42 · 787 阅读 · 0 评论 -
iOS 微秒 时间
struct timeval beginTime,endTime; gettimeofday( &beginTime, NULL); SNSLog(@"begin time = %ld,%d",beginTime.tv_sec,beginTime.tv_usec);原创 2013-10-14 17:12:06 · 1687 阅读 · 0 评论 -
NSInvocation使用示例
一、概述在 iOS中可以直接调用 某个对象的消息 方式有2种第一种方式是使用NSObject类提供的performSelector系列方法还有一种方式就是使用NSInvocation进行动态运行时的消息分发,动态的执行方法,相信大家一定经常使用NSObject类提供的performSelector系列方法,在这里就不再对此进行描述了,今天主要是分享一下使用N转载 2014-02-11 16:01:56 · 788 阅读 · 0 评论 -
iOS设备使用重力感应
首先在你需要检测重力感应的UIView或者UIViewController添加委托UIAccelerometerDelegate>然后自己定义一个UIAccelerometer *accelerometer;iOS的重力感应是用单例实现的,初始化accelerometeraccelerometer = [UIAccelerometer sharedAcce原创 2012-04-26 18:44:57 · 6773 阅读 · 1 评论 -
png图片结构分析与加密解密原理
PNG文件格式分为PNG-24和PNG-8,其最大的区别是PNG-24是用24位来保存一个像素值,是真彩色,而PNG-8是用8位索引值来在调色盘 中索引一个颜色,因为一个索引值的最大上限为2的8次方既128,故调色盘中颜色数最多为128种,所以该文件格式又被叫做PNG-8 128仿色。PNG-24因为其图片容量过大,而且在Nokia和Moto等某些机型上创建图片失败和显示不正确等异常时有发生,有时转载 2014-08-01 10:37:40 · 1278 阅读 · 0 评论 -
iOS多线程编程之NSThread的使用
1、简介:1.1 iOS有三种多线程编程的技术,分别是:1.、NSThread 2、Cocoa NSOperation (iOS多线程编程之NSOperation和NSOperationQueue的使用)3、GCD 全称:Grand Central Dispatch( iOS多线程编程之Grand Central Dispatch(GCD)介绍和使用)这三转载 2015-01-07 21:00:04 · 455 阅读 · 0 评论 -
iOS开发官方文档汇总
程序员的学习过程是无止境的,程序员学习的途径是多样的。可以从视频教程中领悟,也可以从他人的代码中理解。但当我们专注于某一个平台在开发的时候,对于某个API使用或者功能实现有疑问,通常简单的测试可以让我们知道可能的效果,异或网上搜索一下别人的经验,不过最好的途径应该还是阅读官方的文档解释。常常可以更全面,具体的了解。当然也不排除有时候官方文档说了跟没说似地,或者根本说得文不对题。半年多里一直转载 2015-01-12 17:44:06 · 1018 阅读 · 0 评论 -
boundingRectWithSize 的使用, 计算UILable高度, 包含Emoji及多属性string
iOS的文字高度计算一直是个问题, 苹果也一直在改, 这几天看了一下 boundingRectWithSize 方法.- (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options context:(NSStringDrawingContext *)context NS_AVAILABL转载 2015-03-26 13:31:03 · 5491 阅读 · 0 评论 -
ios获取设备信息总结
1、获取设备的信息[objc] view plaincopyUIDevice *device = [[UIDevice alloc] int]; NSString *name = device.name; //获取设备所有者的名称 NSString *model = device.name; //获取设备的类别转载 2015-04-07 20:49:48 · 1245 阅读 · 0 评论 -
iOS 推送
转自: http://blog.youkuaiyun.com/showhilllee/article/details/8631734 最近在研究ios的推送问题,遇到了一些问题,最终整理了一下。放在这里和大家分享APNS的推送机制首先我们看一下苹果官方给出的对ios推送机制的解释。如下图 Provider就是我们自己程序的后台服务器,APNS是Apple转载 2015-05-08 11:46:19 · 919 阅读 · 0 评论 -
setValue和setObject的区别
setValue:forKey: is part of the NSKeyValueCoding protocol, which among other things, lets you access object properties from the likes of Interface Builder. setValue:forKey: is implemented in classes转载 2012-07-24 11:57:52 · 3237 阅读 · 0 评论 -
Objective-C @encode关键字
最近一段时间比较忙,抽空看了一下设计模式(主要是看两本书,《大话设计模式》和《Objective-C编程之道:iOS设计模式解析》 );研究了一下3D数学和opengl,开始学习cocos2D,感觉时间总是很零散,很不够用,所以很久都没有写blog了。闲话少扯,言归正传。昨天被一个同事问到,如果把一些数(int ,BOOL类型等)封装到NSNumber对象中,而这些NSNumber转载 2014-02-11 16:07:07 · 767 阅读 · 0 评论 -
iphone使用keychain来存取用户名和密码
iOS的keychain服务提供了一种安全的保存私密信息(密码,序列号,证书等)的方式。每个ios程序都有一个独立的keychain存储。从ios 3.0开始,跨程序分享keychain变得可行。下面就使用keychain来实现存取用户名和密码。苹果已经有现成的类封装好了keychain,KeychainItemWrapper.h和KeychainItemWrapper.m文件,可转载 2013-12-11 17:06:19 · 1247 阅读 · 0 评论 -
#、##和__VA_ARGS__
转自:http://www.cnblogs.com/zhujudah/admin/EditPosts.aspx?opt=11.#假如希望在字符串中包含宏参数,ANSI C允许这样作,在类函数宏的替换部分,#符号用作一个预处理运算符,它可以把语言符号转化程字符串。例如,如果x是一个宏参量,那么#x可以把参数名转化成相应的字符串。该过程称为字符串化(stringizing).#incl转载 2013-10-22 15:03:57 · 938 阅读 · 0 评论 -
强制去除xcode的编译警告
使用#pragma clang diagnostic ignored语法来强制去除xcode的编译警告,代码举例如下:#pragma clang diagnostic push#pragma clang diagnostic ignored "-Warc-bridge-casts-disallowed-in-nonarc" CGImageSourceUpdat转载 2013-10-28 18:42:46 · 1171 阅读 · 0 评论 -
iOS 遍历类成员
Objective-C运行时库提供了非常便利的方法获取其对象运行时所属类及其所有成员变量,并通过KVC进行值的存取。在某些场合,若想遍历某个对象的所有成员变量的值,或将其转化为NSDictionary这样的key-value集合,亦或将其转化为一个网络请求的POST参数,都可以通过OC的运行时编程来解决。如将当前类所有成员转化为NSDictionary集合- (NS转载 2013-11-13 16:43:28 · 3321 阅读 · 0 评论 -
xcode 断点调试
lldb 常用命令 po(print-object)+ 对象p(print)+ 基本数据类型 int之类bt 打印最后一次调用堆栈expr 动态修改变量另外断点设置中 勾选automatically continue after evaluating可以在断点出做完相应的事情而不停住(例如使用lldb命令输出或者修改变量值)原创 2013-10-14 18:15:26 · 9244 阅读 · 0 评论 -
iOS-实现最简单的画线功能
如何在iOS屏幕上画出一条线来?这是一切复杂画线的基础。首先介绍如何运用CGPath来标定区域:iOS有时候需要判断是否touch到某个图的区域中。这里做了个小示例,通过CGPath创建一个区域,区域是由路径做两点间线段并闭合成的区域,比如这里创建了一个简单的矩形。然转载 2011-08-07 16:41:37 · 26942 阅读 · 0 评论 -
do{...}while(0)的意义和用法
在一些代码中,经常会遇到这样的代码:do{ ...}while(0)这样的代码一看就不是一个循环,do..while表面上在这里一点意义都没有,那么为什么要这么用呢?实际上,do{...}while(0)的作用远大于美化你的代码。查了些资料,总结起来这样写主要有以下几点好处:1、辅助定义复杂的宏,避免引用的时候出错:举例来说,假设你需要定义这转载 2013-12-12 10:12:39 · 632 阅读 · 0 评论