toxic

备忘录

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

文章分类 -  objective-c

摘要:socketserver.class.phprun_mode = $mode; } public function changeBuffSize($size=128){ $this->bufsize = $size; } public function changeEndString($endString='\0'){ $this->endString = $endString; } private function initProperties($host,$port,$common_protocol,$type... 阅读全文
posted @ 2013-07-30 16:38 toxic 阅读(1940) 评论(0) 推荐(0)

摘要:xmppframework是XMPP协议的一个objective-c实现.要了解xmppframework, 从这里开始吧:https://github.com/robbiehanson/XMPPFramework/wiki/IntroToFrameworkXMPPFramework中包含了一个简单的iPhone客户端实现。在iPhoneXMPP中。在测试这个Demo过程中要注意的地方是:如上图要设置HostName(如果服务器域名是对外可见的应该不用)。我测试时,因为我是自己建的openfire服务器,设置的服务器名称是没有登记的。所以需要告诉系统怎么找到这个服务器 -- 在hosts文件中 阅读全文
posted @ 2013-07-25 16:27 toxic 阅读(229) 评论(0) 推荐(0)

摘要:最近在研究iOS的推送问题,遇到了一些问题,最终整理了一下,放在这里和大家分享。APNS的推送机制首先我们看一下苹果官方给出的对iOS推送机制的解释。如下图Provider就是我们自己程序的后台服务器,APNS是Apple Push Notification Service的缩写,也就是苹果的推送服务器。上图可以分为三个阶段:第一阶段:应用程序的服务器端把要发送的消息、目的iPhone的标识打包,发给APNS。第二阶段:APNS在自身的已注册Push服务的iPhone列表中,查找有相应标识的iPhone,并把消息发送到iPhone。第三阶段:iPhone把发来的消息传递给相应的应用程序,并且按 阅读全文
posted @ 2013-07-25 16:07 toxic 阅读(1018) 评论(1) 推荐(0)

摘要:一,CFNetwork 简介首先来回顾下。在前文《[深入浅出Cocoa]iOS网络编程之Socket》中,提到iOS网络编程层次模型分为三层:Cocoa层:NSURL,Bonjour,Game Kit,WebKitCore Foundation层:基于 C 的CFNetwork 和 CFNetServicesOS层:基于 C 的 BSD socket前文讲的是最底层的 socket,本文将介绍位于 Core Foundation 中的 CFNetwork。CFNetwork 只是对 BSD socket 的进行了轻量级的封装,但在 iOS 中使用 CFNetwork 有一个显著的好处,那就是 阅读全文
posted @ 2013-07-25 11:03 toxic 阅读(311) 评论(0) 推荐(0)

摘要:一,iOS网络编程层次模型在前文《深入浅出Cocoa之Bonjour网络编程》中我介绍了如何在Mac系统下进行 Bonjour 编程,在那篇文章中也介绍过 Cocoa 中网络编程层次结构分为三层,虽然那篇演示的是 Mac 系统的例子,其实对iOS系统来说也是一样的。iOS网络编程层次结构也分为三层:Cocoa层:NSURL,Bonjour,Game Kit,WebKitCore Foundation层:基于 C 的CFNetwork 和 CFNetServicesOS层:基于 C 的 BSD socketCocoa层是最上层的基于 Objective-C 的 API,比如 URL访问,NSSt 阅读全文
posted @ 2013-07-25 11:01 toxic 阅读(165) 评论(0) 推荐(0)

摘要:一,NSStream简介首先来回顾下。在前文《[深入浅出Cocoa]iOS网络编程之Socket》中,提到iOS网络编程层次模型分为三层:Cocoa层:NSURL,Bonjour,Game Kit,WebKitCore Foundation层:基于 C 的CFNetwork 和 CFNetServicesOS层:基于 C 的 BSD socket前文《iOS网络编程之Socket》和《iOS网络编程之CFNetwork》讲了最底层的 socket 和Core Foundation层的 CFNetwork,本文将介绍位于 Cocoa 中的 NSStream。NSStream 其实只是用 Obje 阅读全文
posted @ 2013-07-25 11:00 toxic 阅读(5029) 评论(0) 推荐(0)

摘要:iPhone编程规则是:一个窗口,多个视图。UIView是iPhone屏幕上很多控件的基础类。每个iPhone用户界面都是由显示在UIWindow(这其实也是个特殊的UIView)内的众多UIView及其专门化子类构建的。显示数据的视图:UITextViewUILabelUIImageViewUIWebViewMKMapViewsUIScrollView可选择的视图(以下两个视图类实例都是模态显示的):UIAlertViewUIActionSheet所有控件(控件是将用户触摸转换为回调触发器的屏幕对象。):UIButtonUISegmentedControlUISwitchUISliderUI 阅读全文
posted @ 2013-07-24 10:20 toxic 阅读(213) 评论(0) 推荐(0)

摘要:一.要点1.AS3的观察者模式,主要是体现在在哪个组件上监听,那么就在这个组件上分发事件,并且可以直接传递Function.2.OC的观察者模式,主要是需要你指定观察的对象,和观察的对象方法selector,selector只是一个方法的指示器,OC并不能直接传递这个方法,所以你必须指定观察者的对象.二.实例1.AS3amf.aspackage com.ylsoft.core{ import com.ylsoft.event.AppEvent; import mx.controls.Alert; import mx.core.FlexGlobals; impor... 阅读全文
posted @ 2013-07-23 16:38 toxic 阅读(232) 评论(0) 推荐(0)

摘要:1.UIButton苹果系统用户交互的思想是基于消息和响应的,手动让组件触发didTapButton这个方法:[myButton addTarget:self action:@selector(didTapButton:)forControlEvents:UIControlEventTouchUplnside];上文方法中最后一个参数是位掩码事件.在按钮事件中,默认使用UIControlEventTouchUplnside(用户手指离开屏幕的时候触发), 还有另一个常用的事件UIControlEventValueChanged(当组件的值发生变化的时候触发),例如slider的变化.很容易就能 阅读全文
posted @ 2013-06-09 15:39 toxic 阅读(285) 评论(0) 推荐(0)

摘要:视图的生命周期是从app的创建开始的,系统单位时间内只会创建一个视图显示给用户,假设你创建了1000个视图,但只有1个视图显示给用户,那么只有这个视图会被创建.创建视图很简单:UIViewController *viewController = [ [UIViewController alloc] initWithNibName:@"MyViewController" nilBundle:nil];往往创建视图后,你需要给视图的组件绑定FileOwner,例如,buttons, sliders.有两种方法绑定组件:1.在视图文件中选择左侧的FileOwner然后按住ctrl 阅读全文
posted @ 2013-06-09 14:28 toxic 阅读(133) 评论(0) 推荐(0)

摘要:我们知道在Objective-C中,使用@property配合@synthesize可以让编译器自动实现getter/setter方法,使用的时候也很方便,可以直接使用对象.属性的方法调用。NSString* name;NSUInteger age;@property(nonatomic,copy)NSString* name;@property(assign)NSUInteger age;@synthesize name;@synthesize age; 那如果我们想要对象.方法的方式来调用一个方法并获取到方法的返回值... 阅读全文
posted @ 2013-06-08 17:39 toxic 阅读(5898) 评论(0) 推荐(1)

摘要:一、生命周期当一个视图控制器被创建,并在屏幕上显示的时候。 代码的执行顺序1、 alloc 创建对象,分配空间2、init (initWithNibName) 初始化对象,初始化数据3、loadView 从nib载入视图 ,通常这一步不需要去干涉。除非你没有使用xib文件创建视图4、viewDidLoad 载入完成,可以进行自定义数据以及动态创建其他控件5、viewWillAppear 视图将出现在屏幕之前,马上这个... 阅读全文
posted @ 2013-01-31 13:52 toxic 阅读(4683) 评论(1) 推荐(1)

摘要:表用于显示数据列表,数据列表中的每一项都由行表示。IOS没有行的限制,行数仅受可用才存储空间的限制,IOS的表只有一列。 表视图是显示表数据的试图对象,是UITableView类的一个实例,表中的每个可建行都有UITableViewCell类实现。即一个UITableView实例由若干UITableViewCell组成。 表视图不负责存储表中的所有数据,只存储足够绘制当前可见行的数据。每次只加载一屏幕的数据。表视图从遵循UITableViewDelegate协议的对象中获取配置数据,从遵循UITableViewDataSource协议的对象中获得行数据。 (1)- (NSInteg... 阅读全文
posted @ 2012-12-27 09:42 toxic 阅读(2116) 评论(0) 推荐(0)

摘要:设置时间显示格式: NSString* timeStr = @"2011-01-26 17:40:50"; NSDateFormatter *formatter = [[[NSDateFormatter alloc] init] autorelease]; [formatter setDateStyle:NSDateFormatterMediumStyle]; [formatter setTimeStyle:NSDateFormatterShortStyle]; [formatter setDateFormat:@"YYYY-MM-dd HH:mm:ss" 阅读全文
posted @ 2012-12-20 17:22 toxic 阅读(1628) 评论(0) 推荐(0)

摘要:@代表“Objective-C”的标志,证明您正在使用Objective-C语言 Objective-C语言关键词,@property与@synthesize配对使用。 功能:让编译好器自动编写一个与数据成员同名的方法声明来省去读写方法的声明。 如:1、在头文件中:C代码 @property int count; 等效于在头文件中声明2个方法:C代码 - (int)count; -(void)setCount:(int)newCount; 2、实现文件(.m)中C代码 @synthesize count; 等效于在实现文件(.m)中实现2个方法。C代码 - (int)coun... 阅读全文
posted @ 2012-12-19 13:14 toxic 阅读(152) 评论(0) 推荐(0)

摘要:objective-c的委托看似复杂,其实不然,从宏观上理解就是A将具体的实现交给B去做。例如:view类只管展示,但对其点击事件应该做什么,都交给B去做。 objective-c的委托有两种情况:一、受委托类B和委托类A完全分离,伪代码如下:委托类A:@interface A{id<delegate> delegate;}@property id<delegate> delegate;...@end协议:@protocol delegate-(void)func1;@end受委托类B:@interface B:<delegate>@end@implemen 阅读全文
posted @ 2012-12-19 10:43 toxic 阅读(302) 评论(0) 推荐(0)

摘要:Objective-C是只支持单一继承的,当需要创建一个类能表现多个类的特性时,需要采用与Java中很类似的称为协议(Protocol)的方法。如同一个类a,一个类b,两个类签订一个协议p,该p协议规定一个方法c,c的实现在b中,当a需要调用实现c时,并不调用类b,而是声明一个id<p> delegate, 如同a掏出一份协议交给代理商,然后delegate会去找到b,让其完成c这件事。这样的调用更加干净,下面用一个例子具体说明一下: protocol用法: @interface ClassA :ClassB<protocol1, protocol2... 阅读全文
posted @ 2012-12-19 10:11 toxic 阅读(289) 评论(0) 推荐(0)