【iPhone】网络编程–一起来做网站客户端(一)

最近几天,一直在学习网络编程方面,我觉得这是移动开发必须了解的知识吧

在实践中学习,才是最好的方法

于是就决定为公司OA系统做一个iphone客户端,但是前提是这个系统没有提供任何API,所以只能悲剧的通过抓包的形式分析,然后模拟发送请求的数据包,以达到访问系统的效果

其实这样的形式就相当于用程序去实现浏览器的功能,但这正是我要学习的网络编程

=======================================================

预备:

首先要了解访问服务器时,计算机到底做了些什么,

那么就要认真学习一下http协议:深入理解HTM[……]

Read more

为嵌套在左右滑动的UIScrollview上的UITableView增加滑动删除

有一个界面,底部是一个UIScrollview,然后通过addSubView的方式 add了左右2个UITableView。可以左右滑动。一切都很正常,但是问题来了,今天要给右边的tableview增加滑动删除功能。 看似简单,但是有一个蛋疼的问题,这时滑动删除的事件被底部的UIScrollview给响应了,cell根本拿不到这个滑动手势。
想想就蛋疼啊,tableView是UIScrollview 的子类,cell里面的ContentView好像在iOS7.0之后也是UIScrollview ,再加底部一个UIScrollview,这滑动手势事件该怎么传递好呢,给谁都不行啊。 给了底[……]

Read more

关于Json中null的问题以及宏的返回值

在iOS开发过程中经常需要与服务器进行数据通讯,Json就是一种常用的高效简洁的数据格式。

问题现象

但是几个项目下来一直遇到一个坑爹的问题,程序在获取某些数据之后莫名崩溃。其实很早就发现了原因:由于服务器的数据库中有些字段为空,然后以Json形式返回给客户端时就会出现这样的数据:

"somevalue":null

通过JsonKit 这个第三方库解析出来的数据就成了

somevalue = "<null>";

这个数据类型不是nil 也不是 String。 解析成对象之后,如果直接向这个对象发送消息(eg:len[……]

Read more

【iOS】显示系统内所有字体fonts

最近跟美工对字体,发现ios系统中已经有很多字体了,但是根本不知道字体的效果和名字,无从下手,于是就搞了一个小工具来显示所有的字体,方便查找对比,效果如下哦:

屏幕快照 2013-04-02 下午1.23.35 1

具体代码如果需要的话请到此下载

不过,我发现了一个致命的问题,这些字体对于中文来说几乎没什么区别。。。。(内牛满面啊!)

【iOS】浅析为什么delegate不能使用retain属性

下午在群里正在讨论这个问题,大晚上看到这文章,非常激动。刚看开头以为作者文笔很差,估计写不清楚什么东西。但是,看完才发现这是干货,让我对内存管理又有了新的认识,自愧不如。决定不睡觉了,马山转载记录下来。

感谢原作者的分享,原文已经打不开,故在此放上转载的链接:http://stefan321.iteye.com/blog/1593869

===============开始==================

当你开始写iOS程式不久,应该开始面对到很多的delegate,
不管是用别人的library或是自己写library,可能都逃不了delegate。
为了怕有些人不[……]

Read more

在ios项目中使用iConsole,实现程序内debug

还记得上次微信的4.3.3版中三指向上滑就可以调出iConsole控制台吗?当时还是蛮好奇的。随便了解了一下,没有深入。最近项目给甲方测试。老是反馈说在他们的网络下崩溃,而我却无法重新现bug。于是就想到了内置这个iconsole,看看他使用时的log。

IMG_0541

我在github下到了开源的iconsole源码和demo,很遗憾,github刚被我们伟大的GFW封了,所以想看官方的demo的话,可以到这里下:iconsole官方demo

下面开始使用iConsole

首先创建一个测试工程。
加入iConsole 和GTM 源码到工程中,如下图

QQ20130123-8

然后,需要使用把UIWindo[……]

Read more

【iOS】 推送服务的配置和实现

前几天给app增加了推送服务,看了好多资料,最终实现了。在此整理一下,理清思路以便以后复习。

原理分析

================================

至于推送的原理,我大致提一下:

         大致如上图:

             1)、app 向苹果推送服务器(apns)注册,注册后获取deviceToken,

             2)、然后app 把这个deviceToken 发给我们自己的推送服务器,保存下来。

             3)、当需要推送时,我们就可以通过我们推送服务器,把需要的推送的目标设备的deviceToken[……]

Read more

【iOS】Objective-C 内存管理精髓

OC的内存管理是我一直在学习的内容,以前也看了很多相关的文章,但是由于经验少,基本都是纸上谈兵,所以都不深刻。然后,在做项目之中,我也吃了很多内存上的苦,慢慢的积累了一些经验,然后时常回头看看这些文章,发现有了很多体会。
每一次回头看觉得自己在内存管理上有一次飞升。
讲讲现在对内存管理的理解:内存就像孩子,谁搞出来的,就谁负责!

在cocochina发现了一篇很不错的文章,觉得很有体会没,就转载于此,便于时常温习:

转于:http://www.cocoachina.com/newbie/basic/2012/0723/4484.html

iPhone系统中的Objecti[……]

Read more

【iPhone】UIWebview加载网上的txt文件显示乱码的问题

最近要显示网上的word、ppt、excel、txt等文件,暂时先使用UIWebview加载显示,其他的都ok,但是显示txt时却显示乱码。
找了各种方法,暂时解决了,记录如下:

NSStringEncoding * usedEncoding = nil;
        //带编码头的如 utf-8等 这里会识别
        NSString *body = [NSString stringWithContentsOfURL:url usedEncoding:usedEncoding error:nil];
        if (!body)[......]

Read more

Android开发入门——handler使用(二)–HandlerThread类,Bundle的使用

2010-11-28 21:22
ps:今天的学习笔记,总结的很抽象,难以讲清楚,放上代码,便于复习…
=============================================================================
1、其实上面的方法,直接使用handler.post(updateThread),然后线程updateThread直接调用run()方法,并没有调用start()方法, 所以并没有产生新的线程,都是在主线程里面运行的
2、要产生新的线程,可以用如下方法://生成一个HandlerThread对象,实现了使用Looper来处理[……]

Read more

【iPhone】程序间的通信,程序中启动另外一个app

转于:http://xujiwei.com/blog/ios-app-custom-url-scheme-design/

在 iOS 里,程序之间都是相互隔离,目前并没有一个有效的方式来做程序间通信,幸好 iOS 程序可以很方便的注册自己的 URL Scheme,这样就可以通过打开特定 URL 的方式来传递参数给另外一个程序。

例如在 iPad 上浏览网页,并且 iPad 已经安装了 淘宝 HD,那么就打开下面这个链接就会在淘宝 HD 中查看这个商品的详细信息,也可以方便的使用淘宝 HD 进行购买、收藏等操作。

在淘宝 HD 中查看商品“2012西藏卓明谷方舟登舰卡(船票)”[……]

Read more