李sir_Blog

博客园 首页 联系 订阅 管理
  705 随笔 :: 58 文章 :: 134 评论 :: 193万 阅读

03 2013 档案

摘要:sqlite是嵌入式的和轻量级的sql数据库。sqlite是由c实现的。广泛用于包括浏览器(支持html5的大部分浏览器,ie除外)、ios、android以及一些便携需求的小型web应用系统。使用sqlite前的准备使用sqlite是很多做ios开发中第一次面对c的情况,包括我。因为sqlite是c写的,objc可以直接使用c代码。在sqlite前,一般都会使用cocoa touch框架,都是基于objc的。首先,需要在对应文件的头文件中加入:#import "/usr/include/sqlite3.h"并在Frameworks中加入所需的库,否则会报错:Undefin 阅读全文
posted @ 2013-03-27 16:48 李sir 阅读(1639) 评论(0) 推荐(0) 编辑

摘要:我也是在网络上找的,自己加了锁,支持线程安全.h文件[cpp] view plaincopyprint?#import<Foundation/Foundation.h> #import"sqlite3.h" @interfaceDatabaseOperation:NSObject{sqlite3*m_sql;NSString*m_dbName;NSLock*m_lcok;}@property(nonatomic)sqlite3*m_sql;@property(nonatomic,retain)NSString*m_dbName;-(id)initWithDbNa 阅读全文
posted @ 2013-03-27 11:38 李sir 阅读(1248) 评论(0) 推荐(0) 编辑

摘要:在ios开发中为了方便管理资源文件,可以使用bundle的方式来进行管理,类似于ArcGIS Runtime for iOS中的ArcGIS.bundle .切记目前iOS中只允许使用bundle管理资源文件和国际化信息,不支持代码的打包。在xcode3.2.5 中只能够创建setting bundle,会默认创建一些配置文件,在xcode中无法直接删除,这也许不是我们需要的。那么如何使用最简单的方法创建一个bundle呢?1 创建一个文件夹2 将该文件夹重命名为a.bundle3 将a.bundle拖入到xcode中即可bundle的本质就是一个文件夹。当然在iOS中还可以干很多事情,详细资 阅读全文
posted @ 2013-03-18 16:48 李sir 阅读(1865) 评论(0) 推荐(0) 编辑

摘要:Bundle简单地讲,就是一个内部结构按照标准规则组织的特殊目录iOS的应用都是通过bundle进行封装的,对应的bundle类型是Application类型,平时我们通过XCode编译出来的Target(即我们开发的应用),其实就是一个Application类型bundle,即一个文件夹!但是Finder会把这个bundle当做一个文件显示给我们,其实是因为这个bundle自身也是一个package,而Mac系统会把所有的package当做一个文件来对待,显示给用户,从而防止用户误操作导致程序文件损坏或丢失。至于bundle和package有什么区别,就不在这里展开说明了,本文后面所说的bu 阅读全文
posted @ 2013-03-18 16:45 李sir 阅读(294) 评论(0) 推荐(0) 编辑

摘要:fromhttp://hi.baidu.com/iphone_debug/blog/item/955c4cc2767c5a2b970a16b2.html自动尺寸调整行为当您改变视图的边框矩形时,其内嵌子视图的位置和尺寸往往也需要改变,以适应原始视图的新尺寸。如果视图的autoresizesSubviews属性声明被设置为YES,则其子视图会根据autoresizingMask属性的值自动进行尺寸调整。简单配置一下视图的自动尺寸调整掩码常常就能使应用程序得到合适的行为;否则,应用程序就必须通过重载layoutSubviews方法来提供自己的实现。设置视图的自动尺寸调整行为的方法是通过位OR操作符 阅读全文
posted @ 2013-03-18 16:41 李sir 阅读(1566) 评论(0) 推荐(1) 编辑

摘要:转载自http://my.oschina.net/plumsoft/blog/55927前面的一篇文章《iOS开发16:使用Navigation Controller切换视图》中的小例子在运行时,屏幕上方出现的工具栏就是Navigation Bar,而所谓UINavigationItem就可以理解为Navigation Bar中的内容,通过编辑UINavigationItem,我们可以使得在Navigation Bar中显示想要的东西,比如设置标题、添加按钮等。这篇博客将会以一个小例子来演示如何设置UINavigationItem。现在我用的是Xcode 4.3,在使用上跟Xcode 4.2差 阅读全文
posted @ 2013-03-18 16:37 李sir 阅读(4707) 评论(0) 推荐(0) 编辑

摘要:创建C代码UITextField*myTextField=[[UITextFieldalloc]initWithFrame:CGRectMake(50,100,200,50)];纯代码创建View请参看我的另一片博文:有关View的几个基础知识点-IOS开发 (实例)设置委托C代码myTextField.delegate=self;//委托类需要遵守UITextFieldDelegate协议设置属性UIControl属性对UITextField完全可以用,下面的都是UITextFiels扩展的属性:C代码myTextField.textAlignment=UITextAlignmentLeft 阅读全文
posted @ 2013-03-18 16:35 李sir 阅读(1303) 评论(0) 推荐(0) 编辑

摘要:1.首先,我们看一下UIBbarButtonItem有哪些初始化方法,这也可以看出,它可以被定义为什么东东,然后加到UIToolBar上面去。根据SDK的文档,我们可以发现UIBbarButtonItem有如下几种初始化的方法:-initWithTitle-initWithImage-initWithBarButtonSystemItem-initWithCustomView第4种方法就是我们添加各种作料的接口,所以今天的主角其它也是它。2.在UIToolBar上面添加Title[cpp]view plaincopyUIToolbar*myToolBar=[[UIToolbaralloc]in 阅读全文
posted @ 2013-03-18 16:32 李sir 阅读(367) 评论(0) 推荐(0) 编辑

摘要:转自http://iaiai.iteye.com/blog/1396893NSString类提供了很多方法来从文件或者URL中读取数据.
通常情况下,你是知道文件的编码的,读取数据就很容易.
如果你有一个文本(plaintext), 但是不知道它的编码, 那就有点困难了. 你应该避免把自己置于这种境地.从已知编码的文件读取数据
可以使用 stringWithContentsOfFile:encoding:erro 或者相应的init函数 (initWithContentsOfFile:encoding:error)如果使用不指定编码的stringWithContentsOfFile: 来读取文 阅读全文
posted @ 2013-03-18 16:23 李sir 阅读(796) 评论(0) 推荐(0) 编辑

摘要:1. Menu所处的View必须实现 – (BOOL)canBecomeFirstResponder, 且返回YES2. Menu所处的View必须实现 – (BOOL)canPerformAction:withSender, 并根据需求返回YES或NO3. 使Menu所处的View成为First Responder (becomeFirstResponder)4. 定位Menu (- setTargetRect:inView:)5. 展示Menu (- setMenuVisible:animated:)[cpp] view plaincopyprint?@implementationUICo 阅读全文
posted @ 2013-03-18 16:20 李sir 阅读(1777) 评论(0) 推荐(0) 编辑

摘要:在iOS中,可以使用剪贴板实现应用程序之中以及应用程序之间实现数据的共享。比如你可以从iPhone QQ复制一个url,然后粘贴到safari浏览器中查看这个链接的内容。一、在iOS中下面三个控件,自身就有复制-粘贴的功能:1、UITextView2、UITextField3、UIWebView二、UIKit framework提供了几个类和协议方便我们在自己的应用程序中实现剪贴板的功能。1、UIPasteboard:我们可以向其中写入数据,也可以读取数据2、UIMenuController:显示一个快捷菜单,用来复制、剪贴、粘贴选择的项。3、UIResponder中的 canPerformA 阅读全文
posted @ 2013-03-18 16:13 李sir 阅读(20898) 评论(0) 推荐(0) 编辑

摘要:大家应该都比较清楚如果想要刷新一个UIView的话,调用它的setNeedsDisplay即可。问题是,当你调用了一个UIView的setNeedsDisplay之后,该UIView何时才得到刷新?经过调研发现,应该是在一个runloop的最后阶段刷新。什么是一个runloop呢?个人认为可以简单的理解为了一个事件的处理过程。例如用户点击屏幕是两个runloop。当用户按下的时候,...一系列处理->UIView的touchesBegan函数->一系列处理 这里是一个runloop当用户抬起的时候,...一系列处理->UIView的touchesEnd函数->一系列处理 阅读全文
posted @ 2013-03-18 16:06 李sir 阅读(243) 评论(0) 推荐(0) 编辑

摘要:当用户输入不仅仅是布尔值时,可使用分段控件(UISegmentedControl)。分段控件提供一栏按钮(有时称为按钮栏),但只能激活其中一个按钮。分段控件会导致用户在屏幕上看到的内容发生变化。它们常用于在不同类别的信息之间选择,或在不同的应用屏幕之间切换。下面介绍基本属性和基本方法的使用。[代码]c#/cpp/oc代码:1NSArray *segmentedArray = [[NSArrayalloc]initWithObjects:@"1",@"2",@"3",@"4",nil];2//初始化UISegment 阅读全文
posted @ 2013-03-18 16:01 李sir 阅读(1646) 评论(0) 推荐(0) 编辑

摘要:找到一个不错的,对图片处理的文章来自:http://www.devdiv.com/home.php?mod=space&uid=8639&do=blog&id=4104------------------写在引用之前的分割线---------------------------这篇文章的手势识别是通过自定义的touchesBegan / touchesMoved / touchesEnded这组方法来实现的。其实本文所用到的简单手势,苹果已经包装好了——可以用UIGestureRecognizer的衍生类別来进行判断。简单的介绍请看: IOS开发之手势——UIGestu 阅读全文
posted @ 2013-03-18 15:52 李sir 阅读(2417) 评论(0) 推荐(0) 编辑

摘要:这个类使用了Singleton,因此永远只有一个实例。没有实例时会自动生成实例,可以在程序中的任何位置调用它。一般来说,只要跟服务器建立一次连接即可,产生一对stream,分别是outStream和inStream,所有的数据都通过它们不断地发送和接收。stream的end意味着连接中断,如果还需要访问服务器的话,得重新连接stream。(也就是重新实例化一下我这个类)每次发送和接受的数据包大小需要自己控制,而不是等stream来告诉你这个数据包有多大,因为stream不会告诉你……控制方法之一:通过添加一个特殊的后缀来判断,比如“<EOF>”,每次读到这个组合就认为数据读完。但是 阅读全文
posted @ 2013-03-18 15:42 李sir 阅读(2059) 评论(0) 推荐(0) 编辑

摘要://得到当前的日期NSDate *date = [NSDate date];NSLog(@"date:%@",date);//得到(24 * 60 * 60)即24小时之前的日期,dateWithTimeIntervalSinceNow:NSDate *yesterday = [NSDate dateWithTimeIntervalSinceNow: -(24 * 60 * 60)];NSLog(@"yesterday:%@",yesterday);NSDateFormatter *formatter =[[[NSDateFormatter alloc] 阅读全文
posted @ 2013-03-18 15:36 李sir 阅读(259) 评论(0) 推荐(0) 编辑

摘要:1. NSData 与 NSStringNSData-> NSStringNSString*aString = [[NSStringalloc]initWithData:adataencoding:NSUTF8StringEncoding];NSString->NSDataNSString*aString =@"1234abcd";NSData*aData = [aStringdataUsingEncoding:NSUTF8StringEncoding];2.NSData与ByteNSData-> Byte数组NSString*testString =@& 阅读全文
posted @ 2013-03-18 15:16 李sir 阅读(324) 评论(0) 推荐(0) 编辑

摘要:+一般在进行Socket编程或者网络访问的时候,首先需要确认对方网络服务已经开启,且需要知道对方的域名或地址以及端口,然后才可以进行进一步操作。在互联网上好点,网络服务方一般常年开启,且一般IP地址是固定的,另由于DNS服务的存在,只要记住对方的域名便可以。但是在局域网,设备不一定连在上面,即使连上了,服务也不一定开了,每当设备连接到局域网的时候,IP地址一般都是动态分配的,所以情况变的复杂。Bonjour的存在便是苹果为了解决局域网设备间连接麻烦的问题。5+直白的说Bonjour就是是一种协议,使得局域网中的计算机可以方便的发布服务,发现服务和连接服务,达到零配置([Zeroconf][li 阅读全文
posted @ 2013-03-18 15:04 李sir 阅读(2803) 评论(0) 推荐(0) 编辑

摘要:转自https://github.com/kejinlu/objc-doc/blob/master/%E5%A4%9A%E7%BA%BF%E7%A8%8B.md#macios%E4%B9%8B%E5%A4%9A%E7%BA%BF%E7%A8%8B大纲一.线程概述二.创建线程1.使用NSThread2.使用NSObject3.POSIX Thread三.多线程进阶1.NSOperation & NSOperationQueue2.GCD四.进程间通信1.和主线程的通信2.任意线程间的通信五.RunLoop一.线程概述有些程序是一条直线,起点到终点;有些程序是一个圆,不断循环,直到将它切断 阅读全文
posted @ 2013-03-18 14:43 李sir 阅读(2134) 评论(0) 推荐(1) 编辑

摘要:转自https://github.com/kejinlu/objc-doc/blob/master/Socket%E7%BC%96%E7%A8%8B.md大纲一.Socket简介二.BSD Socket编程准备1.地址2.端口3.网络字节序4.半相关与全相关5.网络编程模型三.socket接口编程示例四.使用select五.使用kqueue六.使用流注:文档中设计涉及的代码也都在本人github目录下,分别为socketServer和socketClient.对应着各个分支。一.Socket简介在UNIX系统中,万物皆文件(Everything is a file)。所有的IO操作都可以看作对 阅读全文
posted @ 2013-03-18 14:40 李sir 阅读(15059) 评论(2) 推荐(3) 编辑

摘要:1.使用AsyncSocket(http://code.google.com/p/cocoaasyncsocket/)来做为Socket的一个基础库.2.在该库里面提供了一个EchoServer,我们可以利用这个程序直接在MAC系统上面运行一个测试服务器起来.3.根据AsyncSocket(http://code.google.com/p/cocoaasyncsocket/wiki/iPhone)的WIKI将AsyncSocket加入到iPhone的工程里面,记得将TARGET_OS_IPHONE这个宏在工程上面给定义一下.4.编译工程通过.5.连接服务器代码:**************** 阅读全文
posted @ 2013-03-15 10:12 李sir 阅读(612) 评论(0) 推荐(0) 编辑

摘要:开发Web等网络应用程序的时候,需要确认网络环境,连接情况等信息。如果没有处理它们,是不会通过Apple的审查的。ReachabilityApple 的 例程 Reachability 中介绍了取得/检测网络状态的方法。在你的程序中使用 Reachability 只须将该例程中的 Reachability.h 和 Reachability.m 拷贝到你的工程中。如下图:<IGNORE_JS_OP> 2012-3-31 10:07:26 上传下载附件 (12.79 KB)然后将 SystemConfiguration.framework 添加进工程:<IGNORE_JS_OP& 阅读全文
posted @ 2013-03-12 14:25 李sir 阅读(545) 评论(0) 推荐(0) 编辑

摘要:NSIndexPath类型是用来获取用户选择的indexPath,在别的函数里面,若需要知道用户选择了哪个cell,用上它可以省事很多。不必再去建全局变量section和row。 NSIndexPath *tableSelection = [self.tableView indexPathForSelectedRow];1. UITableView的初始化UITableView tableview= [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 320, 420)];[tableview setDelegate:self];[table 阅读全文
posted @ 2013-03-06 11:54 李sir 阅读(243) 评论(0) 推荐(0) 编辑

摘要:UISearchBar是由两个subView组成的,一个是UISearchBarBackGround,另一个是UITextField. 要IB中没有直接操作背景的属性。方法是直接将 UISearchBarBackGround移去1、修改UISearchBar的背景颜色UISearchBar是由两个subView组成的,一个是UISearchBarBackGround,另一个是UITextField. 要IB中没有直接操作背景的属性。方法是直接将 UISearchBarBackGround移去seachBar=[[UISearchBaralloc]init]; seachBar.backgrou 阅读全文
posted @ 2013-03-06 11:45 李sir 阅读(203) 评论(0) 推荐(0) 编辑

摘要:有些时候需要用到弹出窗口,这个时候UIPopoverController就有用武之地了,下面介绍一个使用UIPopoverController的示例,以供参考。实现效果如下:为了实现这一效果并使用UIPopoverController,这里搞了两个controller,具体定义如下。// Created by Chelsea Wang 4209898762 on 11-10-4.// Copyright 2011年 __MyCompanyName__. All rights reserved.#import <UIKit/UIKit.h>@interface UIActionShe 阅读全文
posted @ 2013-03-06 11:34 李sir 阅读(247) 评论(0) 推荐(0) 编辑

摘要:可以在toolBar上添加任何View。其实它的原理是把你要添加的View先加到UIBarButtonItem里面,最后再把UIBarButtonItem数组一次性放到toolbar的items里面。1.首先,我们看一下UIBbarButtonItem有哪些初始化方法,这也可以看出,它可以被定义为什么东东,然后加到UIToolBar上面去。根据SDK的文档,我们可以发现UIBarButtonItem有如下几种初始化的方法:-initWithTitle(添加button用这个)-initWithImage-initWithBarButtonSystemItem(添加系统自定义的button,形状 阅读全文
posted @ 2013-03-06 11:23 李sir 阅读(445) 评论(0) 推荐(0) 编辑

摘要:.UITextField的初始化和设置 textField = [[UITextField alloc] initWithFrame:CGRectMake(120.0f, 80.0f, 150.0f, 30.0f)]; [textField setBorderStyle:UITextBorderStyleRoundedRect]; //外框类型 textField.placeholder = @"password"; //默认显示的字 textField.secureTextEntry = YES; //密码 textField.autocorrectionType = U 阅读全文
posted @ 2013-03-06 11:10 李sir 阅读(172) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示