- 博客(53)
- 问答 (6)
- 收藏
- 关注
原创 ios7中不支持自定义UIAlertView的样式
今天遇到一个需求,需要让弹出的UIAlertView尺寸大一点,并且文字左对齐本来以为很简单,在网上也确实一下就搜到了这段代码:-(void) willPresentAlertView:(UIAlertView *)alertView{ // 显示备份结果统计的对话框 if(alertView.tag == ALERT_TAG_LOGOUT_DONE || ale
2013-12-31 15:06:33 2744
原创 ios中的UINavigationController简介
前几天做了几个模态页面,对通过presentViewController方法来实现页面跳转已经比较熟悉了,但是通过另一个常见方式NavigationController跳转还不了解,所以今天也稍微试了一下,以后肯定也用得到,本文总结一下两种跳转方式的主要区别主要的区别体现在2点:第1个区别,presentViewController方法,本质上是用一个模态ViewController遮
2013-12-30 20:50:50 1737
原创 用代码创建并实例化在storyboard中声明的ViewController
通过编码,创建storyboard中声明的ViewController的方法
2013-12-30 20:16:06 8664
原创 UIView会自动获取UIViewController的引用?
今天遇到一个奇怪的事,我的UIView里有一个UIViewController的@property@interface YLSFirstView : UIView@property YLSFirstViewController *controller;@end并且,我将view中一个button的target指向该controllerUIButton *button = [U
2013-12-30 15:48:45 1174
原创 ios中输出一个*特殊字符
想把UI调整成这个效果:不知道怎么打出前面的星号,如果直接用shift + 8,效果很差在stackoverflow找到了办法:display a unicode character代码是:prompt1.text = @"\u00B7 此手机号将作为您的用户名";
2013-12-28 15:07:13 1246
原创 用NSTimer定时刷新按钮的文字,避免按钮闪烁的办法
今天做一个功能,一开始将某按钮置灰,然后倒计时60秒。每秒钟都刷新按钮的文字,倒计时结束后,使按钮可用很快就做好了,不过发现一个问题,就是按钮会闪烁,跟星星似的。我的代码是:NSString *text = [NSString stringWithFormat:@"(%d)重发验证码", countDown];[resendButton setTitle:text forState:UI
2013-12-27 21:03:36 5907 5
原创 又踩一坑,从Storyboard创建的ViewController不调用init方法
昨天重构以后,发生一个bug。我把一个ViewController实例变量的初始化代码放在-(id) init{ // init here}但是这个ViewController是从Storyboard创建的,所以init()方法根本不会被调用。要改成写在viewDidLoad()方法里就行了
2013-12-26 11:38:13 3717
原创 在ios项目中引入单元测试(下)
刚才写了怎么在ios项目中引入XCTest单元测试框架:在ios项目中引入单元测试(上)不过还有2个问题,本文补充一下单元测试类依赖原始类这是最普遍的场景,如果做不到,根本就谈不上单元测试了。一般单元测试的代码都会这么写:@interface YLSClientInfoTest : XCTestCase@end@implementation YLSClientInfoTes
2013-12-24 20:56:01 4086
原创 在ios项目中引入单元测试(上)
我们的项目在没有单元测试的情况下“裸奔”了一个月,今天决定将单元测试加进来先在网上搜索了一下,发现有3个unit test的框架:XCTEST,OCTEST,GHTEST。由于也不是很了解,就先用XCTEST凑合一下,毕竟是xcode自带的,应该集成会比较容易点首先在工程里add target然后选择Cocoa touch unit test bundle这里typ
2013-12-24 17:53:16 3262
原创 ios中的模态进度条
需求是在后台下载文件,同时在UI Thread展示进度条。问题是一般的UIProgressView是非模态的,在网上搜索了一番,没找到在ios中实现模态窗口的现成方法。但是UIAlertView就是模态的,就想能不能利用UIAlertView来实现这个需求但是从ios6开始,UIAlertView的addSubview方法已经被deprecated了,所以网上很多例子都不行。最后在GitHub
2013-12-24 16:27:47 1156
原创 ios7里令label文字居中
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(160, 10, 400, 40)];label.text = @"下载中";label.textAlignment = NSTextAlignmentCenter;关键是NSTextAlignmentCenter属性另外感觉,做ios的UI开发,最难的是位置和布局
2013-12-24 15:02:43 3982
原创 一种接口统一返回值的设计方法
应用中经常会涉及到server和client的交互,目前比较流行的是基于json格式的数据交互。但是json只是消息的格式,其中的内容还需要设计。当接口很多的时候,保持返回值格式统一很重要,因为返回值格式一致,客户端才能相应地做统一的处理以前有一个产品使用的接口格式还不错,所以也继续带到现在的产品中使用,格式类似:{ "code":0 , "result":{
2013-12-22 15:07:57 1928 1
原创 UIAlertView
参考了这篇帖子:UIAlertView的API介绍今天开始做IOS的UI部分,从最简单的UIAlertView开始学习-(void) listenBackupStartEvent:(NSNotification*) notification{ UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil message:@
2013-12-19 20:16:28 919
原创 ios中long溢出
今天发现一个BUG,要获取当前时间的毫秒数,用[[NSDate date] timeIntervalSince1970] * 1000取的值太大,有13位,我本来用long类型来存,结果溢出了。在网上搜索了一番,记录一下:long == int == long int,都是4个字节long long == long long int,都是8个字节所以要保存当前时间的毫秒数,不管
2013-12-19 15:57:33 1472
原创 AFNetworking的success block跑在UI Thread里
我运行在子线程中的代码,调用了AFNetworking的API来下载文件:// targetPath是下载的临时文件路径,:app_dir/tmp/CFNetworkDownload_9z499O.tmp NSURL* (^destinationBlock) (NSURL *targetPath, NSURLResponse *response) = ^NSURL* (NSURL *t
2013-12-18 17:20:19 2246
原创 ios遍历NSDictionary的方法
对于已知的key,可以用下面的代码取到value:NSNumber *code = [response objectForKey:@"code"];如果要遍历NSDictionary,可以用下面的代码: NSDictionary *dict = [datas objectAtIndex:0]; NSArray *keys = [dict allKeys];
2013-12-17 19:52:58 1110
原创 ios将NSURL转换成filepath
今天用AFNetworking做了下载文件的功能,但是API的返回类型是NSURL,在网上搜索了与NSString相互转换的代码,记录一下,删除了无关代码:+(void) doDownload:(NSString*)localFilePath{ NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration
2013-12-17 17:49:07 5877
原创 用AFNetworking上传文件到node.js server
前几天做了一个上传文件的特性,ios端使用的是AFNetworking组件,server端是express客户端代码:AFHTTPRequestOperationManager *manager = [[AFHTTPRequestOperationManager alloc] initWithBaseURL:[NSURL URLWithString:UPLOAD_BACKUP_FILE_S
2013-12-17 10:37:16 2325
原创 用ZipArchive压缩文件夹
上次有篇博客记录了用ZipArchive压缩文件,但是那段代码有点问题,可以压缩根目录下的文件,但是无法压缩子目录下的文件:NSArray *fileList = [fileManager contentsOfDirectoryAtPath:sourcePath error:nil];// 文件列表 for(NSString *fileName in fileList){ NS
2013-12-17 10:18:55 1614
原创 ios中使用FMDB的几个小问题
ios使用FMDB操作sqlite3,当传给execute方法的参数是原始类型时,造成EXC_BAD_ACCESS的问题
2013-12-16 22:17:28 2199
原创 删除NSString的最后一个字符
一个很常见的需求,特别是在循环拼接字符串的时候,代码:+(NSString*) removeLastOneChar:(NSString*)origin{ NSString* cutted; if([origin length] > 0){ cutted = [origin substringToIndex:([origin length]-1)];// 去掉最
2013-12-16 21:42:38 13187 1
原创 ios中一些老组件(ARC之前)的导入方法
最近经常遇到导入一些比较老的第三方组件,结果编译各种报错。常见的有什么release,retail, c pointer什么什么的,不胜其烦。原因主要是这些组件是比较早以前写的,代码在现在的ARC环境下编译不过有时候错的不多,顺手就改了,今天导入ASIHTTPRequest,红叉实在太多了,改都改不过来,在网上搜索到一个方法不错,记录一下导入组件以后,在工程配置文件里,选择Build Ph
2013-12-14 00:12:39 1040
原创 NSString写入文件
示例代码:-(void) writeData:(NSString*) data{ NSFileManager *fileManager = [NSFileManager defaultManager]; NSString *fileName = [[self businessId] stringByAppendingString:@".txt"]; NSSt
2013-12-13 23:37:29 873
原创 使用变参函数,拼接字符串的示例代码
最近做了个需求,就是各种拼接字符串。将"aaa","bbb","ccc"拼接成"aaa, bbb, ccc",参数的个数是不确定的。于是想到用变参函数来做挺好的,参考了FMDB的源代码,以下是代码:// 变参函数,用","拼接多表字符串,最后一个参数应该是nil-(NSMutableString*) concatTableStrings:(NSString*)first, ...{
2013-12-13 23:17:15 1061
原创 ios用ZipArchive组件进行压缩
前几天做了一个ZipArchive解压缩zip的需求:ios解压缩zip文件今天又碰到要压缩zip的需求,就顺手补充一下当然还是需要先引入ZipArchive,在编译中加入libz.dylib,然后下面是代码,简单封装了下:+(void) doZipAtPath:(NSString*)sourcePath to:(NSString*)destZipFile{ NSFileMa
2013-12-13 23:10:10 1013
原创 侦听notification的方法,和发送notification的方法跑在同一个线程
ViewController开启新线程,在后台执行doLogout方法,当doLogout执行完毕以后,会发送一个通知。ViewController侦听这个通知:// 侦听注销开始-(void) listenLogoutStartEvent:(NSNotification*) notification{ UIActivityIndicatorView *indicator = [[
2013-12-13 17:40:57 904
原创 用homebrew安装mongodb
homebrew是mac下的包管理软件,类似yum和apt-get今天本来用普通的方式安装了mongodb,但是发现设置为开机启动有些麻烦,所有尝试了一下homebrew,感觉不错,本文记录一下首先安装homebrew,命令是:ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go/install)",他们的官网是:hom
2013-12-11 10:33:12 2137
原创 在macbook下安装mysql
下载之后有2个.pkg,依次傻瓜安装,先装大的再装小的……安装以后,似乎每次开机都会自动启动。手工启动的命令是:sudo /Library/StartupItems/MySQLCOM/MySQLCOM start客户端在:/usr/local/mysql/bin,把它加到/etc/profile里会比较方便
2013-12-10 20:08:01 1429
原创 一次开发ios rsa的过程
昨天需要把android版的用户注册功能,移植到ios版上。android版会将用户填写的手机号和密码,用RSA加密后发到server尝试直接使用modulus和exponent加密android版没有使用证书,是直接用modulus和exponent就加密了RSAPublicKeySpec publicKeySpec = new RSAPublicKeySpec(new BigInt
2013-12-10 15:17:27 1858 1
空空如也
客户端用的ActiveMQ,能连接JBoss发布的JMS消息吗
2011-04-25
单元测试的接口问题
2011-03-04
jquery的$(document).ready()中定义变量的范围问题
2011-01-18
java很难模拟闭包?还是我对闭包理解有误?
2011-01-14
JAVA2年工作经验,在深圳年薪税后9W左右,是个什么水平?
2010-05-13
struts2中取值的问题
2009-03-12
TA创建的收藏夹 TA关注的收藏夹
TA关注的人