摘要:
文章摘抄至:http://zhuyanfeng.com/archives/3015 并有一些改动GCD(Grand Central Dispatch)是从OS X Snow Leopard和iOS 4开始引入的新一代的多线程编程技术。开发者只需定义想执行的任务并追加到适当的Dispatch Queue中,GCD就能生成必要的线程并有计划的执行任务。并且由于线程管理是作为系统的一部分来实现的,因此系统可以统一管理,它会决定什么时候创建新线程,创建哪些新线程,多个任务是顺序执行还是并发执行。这样就比以前的线程编程更有效率。dispatch_async(queue, ^{ // dispatch_. 阅读全文
摘要:
调试运行时候,提示找不到xib(或者其他)资源文件,在工程中确实看的到该资源文件,到具体运行的资源目录([[NSBundlemainBundle] resourcePath]),没有看到该文件,而其他的资源文件,比如图片,xib文件也有,发现是因为在加入外部资源时候,用拖拽的方式,勾选了copy复选框。但还是没将资源文件拷贝过去,换种方式,在工程目录下右键 用add file to xxx 加入,同时选择copy复选框,ok。资源文件在运行时候拷贝过去了,这是Xcode的bug吗?应该是吧,Apple坑他的爹啊!! 阅读全文
摘要:
A:给控件添加方法或变量。1。窗口上拖个控件 NSButton2.。点右上那张狗脸(Editor)对上的。3。右键控件。拖到头文件中。4 。选择加响应方法或变量。 阅读全文
摘要:
-(void)addButton{ NSButton* pushButton = [[NSButton alloc] initWithFrame: NSMakeRect(100, 100, 100, 100)]; pushButton.bezelStyle = NSRoundedBezelStyle; [pushButton setTarget:self]; [pushButton setAction:@selector(buttonClick:)]; [self.window.contentView addSubview:pushBut... 阅读全文
摘要:
DBSCustomView *view = [[DBSCustomView alloc] initWithFrame:NSMakeRect(100, 100, 100, 100)]; [self.window.contentView addSubview:view];//特别地,这里设置坐标是用NSMakeRect,如果用成了CGRectMacke(0,0,10,10);编译不会出错,但运行是错误的,什么都看不到.NSWindow,NSView都是继承自。NSResponder。应该说他们只是兄弟关系,NSWindow里有个contentView另外,对NSView修改背景颜色,必须覆盖NS. 阅读全文
摘要:
NSSelectorFromString动态加载实例方法。 SEL sel = NSSelectorFromString(@"yourMethod:")//有参数 if([object respondsToSelector:sel]) { [object performSelector:sel withObject: @"test" ];//如果有两个参数,使用两个withObject:参数; } 阅读全文
摘要:
Class myClass = NSClassFromString("StaticLibyClassName");StaticLibyClassName是从静态库中实例化一个Class,需要在bulid settings中的Other Linker Flags中添加“-ObjC"标识。否则myClass为nil.还有种坑爹的情况,Build Phases 中没有对应的类.m 文件,当从外部拖入文件时候,虽然勾选了 copy,编译也没有报告错误,但。。。不说了,加进对应的.m文件吧!这个是Xcode的bug 阅读全文
摘要:
最近遇见个Xcode的bug,搞的十分郁闷。具体现象是:程序前段时间都是好好的,可以运行,第二天开机,调试就无法进入模拟器。就连main()函数都进不了。模拟器完全挂起了。具体说来就是代码一句都没改过,工程设置也没改过,昨天走的时候好好的,今天就不行l了。尝试解决办法:1):强行关闭模拟器,在用Xcode中只打开模拟器办法,看看我的那个应用的尸体在模拟器里没。打开看到“一无所有”。2):还原模拟起,重现启动调试。问题依然存在3):删除Xcode中那些cashe文件,重复第二步,在启动调试。对不起。问题依然在。4):升级XCode到最新版本(Xcode4.6.3),当升级的时候看到升级说明文档第 阅读全文
摘要:
常规办法:- (CGFloat)tableView:(UITableView *)tableViewheightForRowAtIndexPath:(NSIndexPath *)indexPath{ if(0 == [indexPath row]) { return 10; } if(1 == [indexPath row]) { return 30; }}然后:- (CGFloat)tableView:(UITableView *)tableViewheightForRowAtIndexPath:(NSIndexPath *)indexPath{ ... 阅读全文
摘要:
componentsSeparatedByString:NSMutableArray *components = [messageStr componentsSeparatedByString:@"*"] ;反过来为NSStrig *str = [components componentsJoinedByString:@"*"]; 阅读全文