下午在测试php上传,大文件老是报undefined index. 修改了php.ini中的upload_max_filesize总是没用。

后来发现还有post_max_size这么一个属性!!!!!!!!!!!

对于这个问题查了不少地方,有好多种解决方案,后来发现原来在iOS 4.1 之后,Apple 提供了UIKeyboardTypeDecimalPad这种键盘模式。

只要设置UITextField的keyboardType即可。

特别需要注意的是,只适合iOS 4.1之后的版本。

如果要兼容之前的版本,那么请参考:http://blog.devedup.com/index.php/2010/03/13/iphone-number-pad-with-a-decimal-point/

相信你是通过搜索引擎过来的,嘿嘿。。。

在使用ASIHttpRequest的时候,需要在Header Search Paths中添加${SDKROOT}/usr/include/libxml2。

Header Search Paths在XCode 3中很好找到,可是在XCode 4中因为菜单的改变。发现有点捉迷藏了。

那就画个示意图吧:

首先在左侧选择你的项目。

然后选择中间位置的Project 或者Targets,随便都可以。

第三步,选择 Build Settings.

第四步,把Tab Navigate中的Basic改成All

然后就可以在Search Path中找到Header Search Paths了。。。

又被BOM这个玩意儿搞得郁闷了一小会。直接上代码吧

function rmBOM($string) {
    if(substr($string, 0,3) == pack("CCC",0xef,0xbb,0xbf)) {
        $string=substr($string, 3);
    }
    return $string;
}

 

不得不说UIWebView这个控件可定制、可获取的东西真的太少了。

找了半天,没找到相关的参数可以获取title的,只能是使用JavaScript了。代码如下:

- (void)webViewDidStartLoad:(UIWebView *)webView
{
	NSString *theTitle=[webView stringByEvaluatingJavaScriptFromString:@"document.title"];
}

SDWebImage是一个可以自动管理图片加载的类库。

因为大家都知道,图片加载非常耗流量,所以在移动平台上对于图片的处理就要异常小心了。因此就必须用到本地缓存了。

而我之前写的一个小型App,因为每张图片的名字都是GUID生成的,不会被修改了。所以会每次都检查一下本地是否有这个文件名的文件存在了。这样最大限度的减小了网络流量,不需要每次都加载一次。

不过呢,SDWebImage的功能不仅仅仅限于此,功能更为强大。最基本的有一个UIImageView的category,用法很简单

[imageView setImageWithURL:[NSURL URLWithString:@"http://www.ioslib.com/ioslib.png"]];

另外呢,还有一个SDWebImageManager,使用它可以进行一些异步加载的工作,关于这部分内容 ,可以参见官方的文档:

https://github.com/rs/SDWebImage#readme

SDWebImage是托管在Github上的:http://github.com/rs/SDWebImage

cocoachina上意外发现了有非常详细的教程了,看来我没必要写下去了,呵呵

直接Copy吧 http://www.cocoachina.com/bbs/read.php?tid-51242.html

ASIHTTPRequest 是一款极其强劲的 HTTP 访问开源项目。让简单的 API 完成复杂的功能,如:异步请求,队列请求,GZIP 压缩,缓存,断点续传,进度跟踪,上传文件,HTTP 认证。在新的版本中,还加入了 Objective-C 闭包 Block 的支持,让我们的代码加轻简灵活。

下面就举例说明它的 API 用法。

Continue reading »

XXXXX nsthread autoreleased with no pool in place - just leaking

这是一个会经常发生的警告提示。

当调用

[NSThread detachNewThreadSelector:@selector(XXX) toTarget:self withObject:nil];

发起一个多线程的时候会发生这种警告,那么,加上NSAutoreleasePool就可以了,NSAutoreleasePool我的理解是一个自动的进程管理池,当然并不代表着有Java或者AS3的强大GC机制。

[NSThread detachNewThreadSelector:@selector(ooxx) toTarget:self withObject:nil];

- (void)ooxx
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

//OOXX,if you like:)

[pool release];
}

关于NSAutoreleasePool可以查看Apple 的官方文档:NSAutoreleasePool Class Reference

另外,需要注意的是,在多进程中要操作主进程的UI是不可以直接操作的,一定要使用:performSelectorOnMainThread

 

刚刚的确郁闷到了,UIViewController 的 presentModalViewController 愣是无效。

找了一圈,找到了一个类似的 ModalViewController not showing on simulator

原来出现这个问题的原因是我在viewDidLoad方法中执行了presentModalViewController.

如果由按钮触发就不会出现这个问题了。

那么,很简单了,使用

[self performSelector:@selector(modalForToken) withObject:nil afterDelay:0.1];

就可以了。

至于为什么会出现这个问题,不是很清楚=.=

下午在一台服务器上安装Mongodb的时候忘记了所使用的ubuntu server的版本号,Google了一下。

发现官方有Help:https://help.ubuntu.com/community/CheckingYourUbuntuVersion

sb_release -a

 

Update: Javaeye上发现了更多的方法:UBUNTU查看版本的方法

cat /etc/issue
cat /proc/version
uname -a
lsb_release -a
cat /etc/lsb-release
© 2011 达达's Blog Suffusion theme by Sayontan Sinha