自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(101)
  • 收藏
  • 关注

转载 IOS怎么样更有效率更全面的使用xcode(一)

IOS怎么样更有效率更全面的使用xcode(一) 算是最基本的问题,因为大家要学ios开发就必须要接触这个工具。有些同学干了两年IOS开发了,却不知如何更有效的开发。这里我们会讨论各种方式方法,会使你更好的利用工具来有效的开发。优秀的开发者一定是善用工具的。 善用工具,可以大大提高效率Xcode很强的开发工具,用好了方便你的开发,用不好影响开发效率。先从三个方面先说

2014-01-17 11:08:29 567

转载 IOS怎么样更有效率更全面的使用xcode之四大问题(二)

第一篇IOS怎么样更有效率更全面的使用xcode(一),主要是讲了一下如何更有效率的使用Xcode,总结出善用搜索,善用工具。现在这一篇博文主要想说一下在写程序中用Xcode的会有些问题出现。个人经验,欢迎讨论!这些都是基本问题,但是我觉得挺重要的,常见到有些朋友犯这样的错误,而不知道原因的,所以记录下来,希望朋友们能够注重这样的问题。1、引用的重要性当我有文件

2014-01-17 11:03:34 594

转载 HTTP Live Streaming直播(iOS直播)技术分析与实现

前些日子,也是项目需要,花了一些时间研究了HTTP Live Streaming(HLS)技术,并实现了一个HLS编码器HLSLiveEncoder,当然,C++写的。其功能是采集摄像头与麦克风,实时进行H.264视频编码和AAC音频编码,并按照HLS的协议规范,生成分段的标准TS文件以及m3u8索引文件。通过我的HLSLiveEncoder和第三方Http服务器(例如:Nginx),成功实现了H

2013-11-05 10:57:16 1585

原创 unrecognized selector sent to instance 0x266070

unrecognized selector sent to instance字面上翻译:给实体对象发送了不认识的消息。遇到这个问题:大概有如下两个原因:1.对象过早的释放掉了,你引用的对象不存在。不能想空对象发送特定的方法(不是全部,因为release等特殊方法,例外)。2.该对象没有这个方法,检查一下方法参数跟调用该方法时参数是否匹配(切记粗心大意)。

2013-10-25 09:50:37 667

原创 复合文件的一个小Demo,Image+scale

让UIImage有缩放功能@interface UIImage (scale)-(UIImage*)scaleToSize:(CGSize)size;@end #import "UIImage+Scale.h"@implementation UIImage (scale)-(UIImage*)scaleToSize:(CGSize)size{// 创

2013-10-15 15:01:13 607

转载 iOS Framework: Introducing MKNetworkKit (MKNetworkKit介绍,入门,翻译)

这片文章也有塞尔维亚-克罗地亚语(由Jovana Milutinovich翻译)和日语(由@noradaiko翻译)如果有个一个网络库能够自动的为你处理cache该有多好啊。如果有一个网络库能够在设备离线的时候自动的记住用户的操作该有多酷啊。当你离线的时候,你喜欢了一条微博或者把一条新闻标记为已读,然后网络库会在设备连网后自动执行这些操作,并且还不用写一行多余的代码。下

2013-10-14 20:19:14 3857

原创 重识iOS 里的MVC

这片文章很好,我是做一个大点的程序时回过头来再学这个的。我想了一天都不能很好的设计,才突然发现mvc没理解透。简单的东西只要照着官方文档用就是了,但是需要自己设计类了就会觉得这个有用了。可能越到后面越觉得这个重要。http://gaoyong.diandian.com/post/2011-11-02/6443926我们今天谈谈cocoa程序设计中的 模型-视图-控制器(MVC)

2013-10-11 20:23:30 861

转载 业务逻辑

“一个人了解的业务逻辑越多越细,他就是越好的需求分析师。”花了一下午攻坚一个难题:什么是业务逻辑?业务是指一个实体单元向另一个实体单元提供的服务。逻辑是指根据已有的信息推出合理的结论的规律。业务逻辑是指一个实体单元为了向另一个实体单元提供服务,应该具备的规则与流程。就像你家的规矩–“吃饭前必须洗手”“有客人来要起立”“睡觉前各自说晚安”-就是业务逻辑的生活化实例。在软件系统

2013-10-10 18:11:15 7866

原创 IOS开发之xcode 快捷键

IOS开发也有快一年了,发现Xcode快捷键,还不熟,恶补一下。要不然真影响工作效率,呵呵!1. 文件CMD + N: 新文件CMD + SHIFT + N: 新项目CMD + O: 打开CMD + S: 保存CMD + SHIFT + S: 另存为CMD + W: 关闭窗口CMD + SHIFT + W: 关闭文件2. 编辑CMD

2013-09-28 12:02:49 1300

转载 框架搭建之一------引入ASIHttp框架

来到新公司,第一天就进入项目组,框架搭建自己做。引入开源框架需要注意,不要从一些开源项目中,提炼他添加的 开源框架 ,比如从网上下载了一个开源项目XApp,他包含框架:SBJson,ASIHttp,AFNetWork,等,从这个项目中拷贝到自己项目中,总是有N多编译问题,主要是他对框架已经进行了修改,引用了很多自己的类,所以加到自己的项目中会很麻烦,除非自己很了解这个项目。以下是用

2013-09-28 11:55:46 7016

原创 iOS7中UITableView中cell的使用

今天看到很多人提到,在iOS7中,使用UITableView的时候,对于cell要注意:[cell addSubview:userTextField] 这种用法不能再用了,应该使用 [cell.contentView addSubview:userTextField] 的方式。如某人就遇到这种问题:http://www.cocoachina.com/bbs/read.p

2013-09-26 17:45:07 1387

转载 Redesign Your App for iOS 7 之 页面布局

前言iOS7是目前iOS史上最颠覆的一次改版。它的出现令人兴奋,因为它将会带我们进入一个全新的时代;它的到来也让我们忧心,因为它颠覆了一切,包括我们过去做过的很多努力。但是,相信大家乐意为这个全新时代做更多的努力,因为,它值得期待。 最近打算写一系列针对iOS7新特性的文章,今天就从最基本和简单的页面布局开始吧。  从头说起

2013-09-26 17:44:08 712

转载 iOS5 ARC学习笔记:strong、weak等详解

iOS5中加入了新知识,就是ARC,其实我并不是很喜欢它,因为习惯了自己管理内存。但是学习还是很有必要的。在iOS开发过程中,属性的定义往往与retain, assign, copy有关,我想大家都很熟悉了,在此我也不介绍,网上有很多相关文章。现在我们看看iOS5中新的关键字strong, weak, unsafe_unretained. 可以与以前的关键字对应学习strong与r

2013-09-12 11:51:48 1216

原创 动态机制那些不为人知的秘密

1.动态机制的特点:静态分配在编译和链接时确定内存大小,在运行过程中不能改变,动态分配克服了这个限制,但仍存在很多限制,如:编译时期的类型匹配,程序的边界地址在链接时期必须确定,应用程序的每个部分必须组织成一个单独的可执行文件,运行时不能加入新的模块和类型。oc基本克服了这些限制,把很多编译时期的需要做的决定放到运行时做,动态加载:没有面向对象时,程序被链接成一个执行文件,在运

2013-04-16 20:37:31 1101

原创 从Internet获取数据

利用HttpURLConnection对象,我们可以从网络中获取网页数据.URL url = new URL("http://www.sohu.com");HttpURLConnection conn = (HttpURLConnection) url.openConnection();conn.setConnectTimeout(5* 1000);//设置连接超时conn.set

2012-12-25 20:56:01 327

原创 使用ContentResolver操作ContentProvider中的数据

当外部应用需要对ContentProvider中的数据进行添加、删除、修改和查询操作时,可以使用ContentResolver 类来完成,要获取ContentResolver 对象,可以使用Activity提供的getContentResolver()方法。 ContentResolver 类提供了与ContentProvider类相同签名的四个方法:public Uri insert(Uri

2012-12-25 20:55:07 600

原创 使用ContentProvider共享数据

ContentProvider类主要方法的作用:public boolean onCreate()该方法在ContentProvider创建后就会被调用, Android开机后, ContentProvider在其它应用第一次访问它时才会被创建。public Uri insert(Uri uri, ContentValues values)该方法用于供外部应用往ContentPro

2012-12-25 20:54:25 312

原创 UriMatcher类使用介绍

因为Uri代表了要操作的数据,所以我们经常需要解析Uri,并从Uri中获取数据。Android系统提供了两个用于操作Uri的工具类,分别为UriMatcher 和ContentUris 。掌握它们的使用,会便于我们的开发工作。UriMatcher类用于匹配Uri,它的用法如下:首先第一步把你需要匹配Uri路径全部给注册上,如下://常量UriMatcher.NO_MATCH表示不匹配任

2012-12-25 20:53:22 421

原创 浅析URI

Uri代表了要操作的数据,Uri主要包含了两部分信息:1》需要操作的ContentProvider ,2》对ContentProvider中的什么数据进行操作,一个Uri由以下几部分组成:ContentProvider(内容提供者)的scheme已经由Android所规定, scheme为:content://主机名(或叫Authority)用于唯一标识这个ContentProvide

2012-12-25 20:52:43 317

原创 使用ContentProvider共享数据

当应用继承ContentProvider类,并重写该类用于提供数据和存储数据的方法,就可以向其他应用共享其数据。虽然使用其他方法也可以对外共享数据,但数据访问方式会因数据存储的方式而不同,如:采用文件方式对外共享数据,需要进行文件操作读写数据;采用sharedpreferences共享数据,需要使用sharedpreferences API读写数据。而使用ContentProvider共享数据的好

2012-12-25 20:49:36 353

原创 使用事务操作SQLite数据库

使用SQLiteDatabase的beginTransaction()方法可以开启一个事务,程序执行到endTransaction() 方法时会检查事务的标志是否为成功,如果程序执行到endTransaction()之前调用了setTransactionSuccessful() 方法设置事务的标志为成功则提交事务,如果没有调用setTransactionSuccessful() 方法则回滚事务。使

2012-12-25 20:48:24 360

原创 使用SQLiteOpenHelper获取用于操作数据库的SQLiteDatabase实例

public class DatabaseHelper extends SQLiteOpenHelper {         private static final String name = "itcast"; //数据库名称         private static final int version = 1; //数据库版本         ......略}publ

2012-12-25 20:47:42 706

原创 使用SQLiteDatabase操作SQLite数据库(三)

query()方法实际上是把select语句拆分成了若干个组成部分,然后作为方法的输入参数:SQLiteDatabase db = databaseHelper.getWritableDatabase();Cursor cursor = db.query("person", new String[]{"personid,name,age"}, "name like ?", new Stri

2012-12-25 20:47:09 564

原创 使用SQLiteDatabase操作SQLite数据库(二)

除了前面给大家介绍的execSQL()和rawQuery()方法, SQLiteDatabase还专门提供了对应于添加、删除、更新、查询的操作方法: insert()、delete()、update()和query() 。这些方法实际上是给那些不太了解SQL语法的菜鸟使用的,对于熟悉SQL语法的程序员而言,直接使用execSQL()和rawQuery()方法执行SQL语句就能完成数据的添加、删除、

2012-12-25 20:46:29 522

原创 使用SQLiteDatabase操作SQLite数据库(一)

Android提供了一个名为SQLiteDatabase的类,该类封装了一些操作数据库的API,使用该类可以完成对数据进行添加(Create)、查询(Retrieve)、更新(Update)和删除(Delete)操作(这些操作简称为CRUD)。对SQLiteDatabase的学习,我们应该重点掌握execSQL()和rawQuery()方法。 execSQL()方法可以执行insert、delet

2012-12-25 20:45:13 618

原创 使用SQLiteOpenHelper对数据库进行版本管理

我们在编写数据库应用软件时,需要考虑这样的问题:因为我们开发的软件可能会安装在成百上千个用户的手机上,如果应用使用到了SQLite数据库,我们必须在用户初次使用软件时创建出应用使用到的数据库表结构及添加一些初始化记录,另外在软件升级的时候,也需要对数据表结构进行更新。那么,我们如何才能实现在用户初次使用或升级软件时自动在用户的手机上创建出应用需要的数据库表呢?总不能让我们在每个需要安装此软件的手机

2012-12-25 20:44:05 4289

原创 使用嵌入式关系型SQLite数据库存储数据

除了可以使用文件或SharedPreferences存储数据,还可以选择使用SQLite数据库存储数据。在Android平台上,集成了一个嵌入式关系型数据库—SQLite,SQLite3支持 NULL、INTEGER、REAL(浮点数字)、TEXT(字符串文本)和BLOB(二进制对象)数据类型,虽然它支持的类型只有五种,但实际上sqlite3也接受varchar(n)、char(n)、deci

2012-12-25 20:43:18 545

原创 访问SharedPreferences中的数据

访问SharedPreferences中的数据代码如下:SharedPreferences sharedPreferences = getSharedPreferences("itcast", Context.MODE_PRIVATE);//getString()第二个参数为缺省值,如果preference中不存在该key,将返回缺省值String name = sharedPrefe

2012-12-25 20:42:29 371

原创 使用SharedPreferences进行数据存储

很多时候我们开发的软件需要向用户提供软件参数设置功能,例如我们常用的QQ,用户可以设置是否允许陌生人添加自己为好友。对于软件配置参数的保存,如果是window软件通常我们会采用ini文件进行保存,如果是j2se应用,我们会采用properties属性文件或者xml进行保存。如果是Android应用,我们最适合采用什么方式保存软件配置参数呢?Android平台给我们提供了一个SharedPrefer

2012-12-25 20:41:48 336

原创 使用Pull解析器读取XML文件

除了可以使用 SAX和DOM解析XML文件,大家也可以使用Android内置的Pull解析器解析XML文件。 Pull解析器的运行方式与 SAX 解析器相似。它提供了类似的事件,如:开始元素和结束元素事件,使用parser.next()可以进入下一个元素并触发相应事件。事件将作为数值代码被发送,因此可以使用一个switch对感兴趣的事件进行处理。当元素开始解析时,调用parser.nextText

2012-12-25 20:41:01 312

原创 使用DOM读取XML文件

除了可以使用 SAX解析XML文件,大家也可以使用熟悉的DOM来解析XML文件。 DOM解析XML文件时,会将XML文件的所有内容以对象树方式存放在内存中,然后允许您使用DOM API遍历XML树、检索所需的数据。使用DOM操作XML的代码看起来比较直观,并且,在某些方面比基于SAX的实现更加简单。但是,因为DOM需要将XML文件的所有内容以对象树方式存放在内存中,所以内存的消耗比较大,特别对于运

2012-12-25 20:39:20 274

原创 使用SAX读取XML文件

SAX是一个解析速度快并且占用内存少的xml解析器,非常适合用于Android等移动设备。 SAX解析XML文件采用的是事件驱动,也就是说,它并不需要解析完整个文档,在按内容顺序解析文档的过程中,SAX会判断当前读到的字符是否合法XML语法中的某部分,如果符合就会触发事件。所谓事件,其实就是一些回调(callback)方法,这些方法(事件)定义在ContentHandler接口。下面是一些Cont

2012-12-25 20:37:57 348

原创 读取文件内容

如果要打开存放在/data/data//files目录应用私有的文件,可以使用Activity提供openFileInput()方法。FileInputStream inStream = this.getContext().openFileInput("itcast.txt");Log.i("FileTest", readInStream(inStream));readInStream

2012-12-25 20:36:41 270

原创 使用文件进行数据存储

首先给大家介绍使用文件如何对数据进行存储,Activity提供了openFileOutput()方法可以用于把数据输出到文件中,具体的实现过程与在J2SE环境中保存数据到文件中是一样的。public class FileActivity extends Activity {    @Override public void onCreate(Bundle savedInstanceStat

2012-12-25 20:34:04 293

原创 组件笔记(一)

1.显示文本的组件--TextView  (1)基本使用,显示文本  除了以上在xml文件中配置相关属性,还可以通过在  代码中进行设置,部分具体方法如下,其它类似:  A,设置背景  /*设置背景的三个方法  * 1--参数为颜色值  * 2--参数为Drawable对象  * 3--参数为资源ID  *  mTextView.setBackgroundC

2012-12-22 12:20:02 282

原创 组件笔记(二)

一.Menu1.创建子菜单:menu.addsubMenu("");2.设置图标:对象.setIcon(R.drawable.图标);3.设置标志:对象.setHeaderIcon(R.drawable.图标);4.设置Title:对象.setHeaderTitle("");二.设置菜单项(SubMenu)创建菜单项:对象.add(groupId,项目ID(标识),orde

2012-12-22 12:18:24 213

原创 servlet监听小结

对于servlet监听器这一讲,相对来说还是很简单也非常容易上手的。主要是实现ServletContext,HttpSession,ServletRequest三个域对象的监听。只要在web.xml中使用了标签进行说明,web容器就自动的把配置的监听器注册到事件源上了。这些监听器对象主要分为以下三个方面展开说明。第一,是监听三个域对象的创建和销毁。ServletContextListe

2012-12-04 14:54:50 355

原创 描述事件监听机制

事件 是用户在界面上的一个操作(通常使用各种输入设备,如: 鼠标、键盘等来完成)。 n 当一个事件发生时,该事件用一个 事件对象 来表示。事件对象有 对应的 事件类 。不同的事件类描述不同类型的用户动作。事件类 包含在 java.awt.event 和 javax.swing.event 包中。事件源 产生事件的组件叫 事件源 。在一个按钮上单击鼠标时,该按钮就 是事件源,会产生一个 Ac

2012-12-03 19:30:28 319

原创 Servle监听器

在Servlet规范中定义了多种类型的监听器,它们用于监听的事件源分别为 ServletContext, HttpSession 和 ServletRequest 这三个域对象。Servlet规范针对这三个对象上的操作,又把这多种类型的监听器划分为三种类型。监听三个域对象创建和销毁的事件监听器监听域对象中属性的增加和删除的事件监听器监听绑定到 HttpSession 域中的某个对象

2012-12-03 15:33:29 345

原创 核心API—DiskFileItemFactory

DiskFileItemFactory 是创建 FileItem 对象的工厂,这个工厂类常用方法:public void setSizeThreshold(int sizeThreshold) 设置内存缓冲区的大小,默认值为10K。当上传文件大于缓冲区大小时, fileupload组件将使用临时文件缓存上传文件。public void setRepository(java.io.Fil

2012-12-01 08:59:58 2537

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除