这很奇怪.我有一个空的SQLite DB.
当我执行时,select min(time) from asdftable我得到一个空行.当我执行时,select time from asdftable我什么都没有回来(这是正确的).
任何想法为什么会这样?
是否可以使用[idx]访问NSArray的对象?我有一个使用[]样式索引的标准库,我不想重写整个库以适应ObjC的objectAtIndex:方法.
如, NSArray *obj = [NSArray ...]; id item = obj[0];
如何从Xcode的repo中删除DerivedData文件夹,以及如何永久阻止它包含在提交中?
Xcode 3没有这个问题.从Xcode 4.1开始.
git filter-branch --index-filter 'git rm -r --cached --ignore-unmatch DerivedData/' (对于文件夹)
git filter-branch --index-filter 'git rm --cached --ignore-unmatch filename_here' (用于文件)
以今天为例,我如何确定230个工作日之前的日期?
我知道如何使用while循环检查日期迭代地执行它,如果它是工作日则减去1,但我想知道是否有更好的方法.
另外,我们以周日下午1点为例,减去3个工作日和2个小时.首先,从周末减去工作时间是没有意义的.因此,它必须将时间移至星期五的23:59:59,然后减去3天和2小时.
如果它是星期一凌晨1:30,我将减去5天和3个工作小时,那么结果应该是前一周的星期五晚上22:30.
用于测试Kevin方法的代码:
NSCalendar *cal = [NSCalendar currentCalendar];
NSDateComponents *dc = [[NSDateComponents new] autorelease];
dc.month = 12;
dc.day = 19;
dc.year = 2011;
dc.hour = 1;
dc.minute = 0;
dc.second = 0;
NSDate *date = [cal dateFromComponents:dc];
NSLog(@"%@", [date descriptionWithCalendarFormat:nil timeZone:nil locale:nil]);
date = dateBySubtractingWorkOffset(date, 0, 2);
NSLog(@"%@", [date descriptionWithCalendarFormat:nil timeZone:nil locale:nil]);
Run Code Online (Sandbox Code Playgroud)
输出日志:
2011-12-02 16:33:46.878 otest[7124:707] 2011-12-19 01:00:00 -0500
2011-12-02 16:33:47.659 otest[7124:707] 2011-12-18 23:00:00 -0500
Run Code Online (Sandbox Code Playgroud)
它永远不应该是12-18,因为那是一个星期天.
是否有现成的ObjC解释器实现.基本上,我需要通过脚本语言扩展我的程序.
我不确定这是否已经由某种框架提供,或者我可能在内部实现AppleScript - 不知道我将如何做到这一点.它似乎只适用于自动化程序本身,而不是用于扩展自己的功能.
类似于mIRC与脚本语言接口的方法.
如何启动XCode(或与文件关联的任何其他默认程序)并使其以编程方式打开特定文件?与在Finder中双击.c类似 - 它会打开包含该文件的XCode编辑器.
除了它的"哲学"方面,让我的控制器也成为我的模型是一个坏主意吗?
这似乎节省了一些编程时间.我不必在控制器和模型之间创建逻辑,因为它是一样的.我可以直接与视图进行交互.
将M和C分开是什么意思?模块化 - 即将一个模型和控制器集换成另一个模型的能力 - 将它们分开的唯一原因是什么?在我看来,"交换"模块的发生比(例如)必须更新模型和控制器要少得多,因为模型中的某些东西正在发生变化.
根据MVC概念,一个简单的计算器应该同时具有控制器和设置视图(如默认设置或其他东西),这似乎很奇怪.我知道这是一个简单的例子,但它似乎适用于所有情况(除了框架).
我知道函数可以动态调用,但是有没有办法静态地确定哪些函数(和ObjC对象的方法)没有被调用?
我有类Item和类List(有一个NSMutableArray).
每当类Item被实例化(并销毁)时,它都会发布一个通知,该通知由类List监听.当类List收到通知时,将类Item的实例添加到其列表中.
我正在尝试让课程项目也发布一个通知,它即将被释放.问题是类List的NSMutableArray保留了类Item的实例.
处理这种情况最合适的方法是什么?如果我在将它添加到List的数组时减少计数,那么当类List尝试调用removeObject时会抛出异常(因为它会尝试释放该对象.)
基本上,我想要一个"监视器"类列表,其中包含Item的所有"实时"实例的列表.但是,我还需要能够释放/释放实例并让它们报告它们被释放,因此List可以将它们从NSMutableArray中删除.
谢谢你的帮助.
如何在对象上运行任意选择器,其返回值为double?例如,我有obj A,它有方法 - (double)blah;
我该double res = [obj performSelector:@selector(blah)];怎么办?performSelector返回一个id类型对象,所以我应该从id转换为NSInteger加倍 - 这将失去精度?
另外,我不希望使用的obj的methodSignatureForSelector(意思是,没有NSMethodSignature,没有NSInvocation),因为它是在运行时一个巨大的CPU消耗.