摘要:
先看代码:@interface ViewController(){ NSObject * obj_;}@property(retain) NSObject * obj;//注意,默认是@property(atomic, ....@end@implementation ViewController@synthesize obj = obj_;- (id)init{ if(self = [super init]) { obj_ = [[Obj alloc] init]; } int n = [obj_ retainCount]; id x ... 阅读全文
摘要:
/// show the custom statusBar//- (void)btn1:(id)sender{ if(self.win && self.win.frame.origin.y == 0) return; if(self.win == nil) { self.win = [[UIWindow alloc] initWithFrame:CGRectMake(0, -20, 320, 20)]; self.win.windowLevel = UIWindowLevelAlert; self.win.bac... 阅读全文
摘要:
UIMenuController的使用,对UILabel拷贝以及定制菜单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:)@implement 阅读全文
摘要:
iPhone 中的线程应用并不是无节制的,官方给出的资料显示iPhone OS下的主线程的堆栈大小是1M,第二个线程开始都是512KB。并且该值不能通过编译器开关或线程API函数来更改。 只有主线程有直接修改UI的能力。一、NSOperation和NSOperationQueue 1、一个继承自NSOperation的操作类,该类的实现中必须有 -(void)main方法的。 2、使用NSOperation的最简单方法就是将其放入NSOperationQueue中。 一旦一个操作被加入队列,该队列就会启动并开始处理它(即调用该操作类的main方法)。一旦该操作完成队列就会释放它。 ... 阅读全文
摘要:
多线程开发是一件需要特别精心的事情,即使是对有多年开发经验的工程师来说。为了能让初级开发工程师也能使用多线程,同时还要简化复杂性。各种编程工具提供了各自的办法。对于iOS来说,建议在尽可能的情况下避免直接操作线程,使用比如NSOperationQueue这样的机制。可以把NSOperationQueue看作一个线程池,可往线程池中添加操作(NSOperation)到队列中。线程池中的线程可看作消费者,从队列中取走操作,并执行它。你可以设置线程池中只有一个线程,这样,各个操作就可以认为是近似的顺序执行了。为什么说是近似呢,后面会做解释。编写最简单的示例先写个最简单的示例。编写一个NSOperat 阅读全文
摘要:
arc工程里对某文件进行非arc编译:如果是非arc工程里对某文件进行arc编译,那就是-fobjc-arc 阅读全文
摘要:
代码主要在-btn1:里面.#import <AssetsLibrary/AssetsLibrary.h>....- (NSString *)makeThumbnailNameFromURL:(NSURL *)mediaURL{ if (nil == mediaURL){ return nil; } NSArray * components = [mediaURL.querycomponentsSeparatedByCharactersInSet: [NSCharacterSet characterSetWithCharactersInString:@"... 阅读全文
摘要:
转自:http://blog.csdn.net/jixiuffff/article/details/5879547[c-sharp] view plaincopy#五个检查点PREROUTING,FORWARDPOSTROUTINGINPUTOUTPUT#一个数据包从prerouting进入我的机器,它有两个去向,一是经过input访问我机器上的应用程序,后经output,postrouting#流走,另一个去向是:直接经forwardpostrouting流向别的机器,也就是说我的机器只是充当路由,数据包经我的机器到其他机器上##PREROUTING---------------->F 阅读全文
摘要:
我要使我的服务程序在重启系统后也随之自动启动。启动我的服务用到了一个脚本。现在有两个方法:法1:sudo vi /etc/init.d/rc.local在这里添加启动服务的脚本命令.这个方法的优点是:此时尚未登录用户,启动服务用的是su。相当于sudo。权限无比大. 这个方法的缺陷是:这个时候用户尚未login,当然更没有指定用户主目录,因此假如我们的服务程序里有用到'~'作为路径的,那就废了,'~'表示'null'...ps:可以在/var/log/boot.log里看日志.法2: sudo vi /etc/profile在最下面添加启动服务的 阅读全文
摘要:
grep正则表达式元字符集:^ 锚定行的开始 如:'^grep'匹配所有以grep开头的行。 $ 锚定行的结束 如:'grep$'匹配所有以grep结尾的行。 . 匹配一个非换行符的字符 如:'gr.p'匹配gr后接一个任意字符,然后是p。 * 匹配零个或多个先前字符 如:'*grep'匹配所有一个或多个空格后紧跟grep的行。 .*一起用代表任意字符。[] 匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。 [^] 匹配一个不在指定范围内的字符,如:'[^A-FH-Z]rep' 阅读全文