小编Mar*_*c W的帖子

Rails的关闭钩子

我希望在Rails关闭时运行一些清理代码 - 这可能吗?我的情况是我在后台有一些线程(我正在使用jruby并调用java),这些线程一直存在于进程的生命中,我需要让他们知道关闭自己

谢谢!

ruby-on-rails jruby

11
推荐指数
2
解决办法
3426
查看次数

计算Cocoa中两个时间点之间的秒数,即使系统时钟在中途发生变化

我正在编写一个Cocoa OS X(Leopard 10.5+)最终用户程序,该程序使用时间戳来计算屏幕上显示内容的统计信息.使用重复的NSTimer运行程序时,会定期计算时间. [NSDate date]用于捕获时间戳,开始结束.以秒为单位计算两个日期之间的差异是微不足道的.

如果最终用户或ntp更改系统时钟,则会出现问题. [NSDate date]依赖于系统时钟,因此如果它被改变,Finish变量将相对于Start变形,从而显着地搞乱了时间计算.我的问题:

1. 即使系统时钟在中途改变,如何准确计算开始结束之间的时间(以秒为单位)?

我想我需要一个不变的参考时间点,所以我可以计算从那以后经过了多少秒.例如,系统正常运行时间.具有10.6 - (NSTimeInterval)systemUptime的一部分NSProcessInfo,它提供了系统正常运行时间.但是,这不起作用,因为我的应用程序必须在10.5中工作.

我尝试使用NSTimer创建时间计数器,但这不准确.NSTimer有几种不同的运行模式,一次只能运行一种.NSTimer(默认情况下)进入默认运行模式.如果用户开始操作UI足够长的时间,这将进入NSEventTrackingRunLoopMode并跳过默认运行模式,这可能导致跳过NSTimer激活,使其成为计算秒数的不准确方式.

我还考虑过创建一个单独的线程(NSRunLoop)来运行NSTimer秒计数器,使其远离UI交互.但我对多线程非常陌生,如果可能的话,我想远离它.此外,我不确定这是否会在CPU被另一个应用程序(Photoshop渲染大图像等等)绑定的情况下准确工作,导致我的NSRunLoop被搁置足够长的时间以使其陷入困境的NSTimer.

我感谢任何帮助.:)

cocoa timer objective-c clock

10
推荐指数
2
解决办法
3452
查看次数

Objective-C是否保证接口成员数据的初始化?

在这样的界面中:

@interface MyClass : NSObject
{
    bool PlainOldBool;
}

@end
Run Code Online (Sandbox Code Playgroud)

...确实PlainOldBool自动初始化为false,或者是否有必要使用init方法明确地执行此操作?

objective-c

10
推荐指数
1
解决办法
2667
查看次数

Facebook分享按钮问题

我正在尝试使用Facebook共享按钮为链接创建共享按钮:

http://www.facebook.com/facebook-widgets/share.php http://wiki.developers.facebook.com/index.php/Facebook_Share

但是,当我尝试使用t我的URL中的值时,它们不起作用.

我甚至尝试在API页面上使用该示例:

http://www.facebook.com/sharer.php?u=http%3A%2F%2Fdevelopers.facebook.com%2F&t=Facebook%20Developers

并且它不起作用......它将标题设置为developers.facebook.com不是Facebook DevelopersURL指定的

有谁知道我怎么能正常工作?

我希望我的共享链接显示为......'标题我正在分享'然后...直接到该项目的URL.

facebook

9
推荐指数
2
解决办法
1万
查看次数

如何在模拟对象中设置变量

有没有办法在模拟对象中设置类级变量?

我有类似于这样的模拟对象:

$stub = $this->getMock('SokmeClass', array('method'));
$stub->expects($this->once())
         ->method('method')
         ->with($this->equalTo($arg1));
Run Code Online (Sandbox Code Playgroud)

赢得真正的类有一个变量需要设置才能正常工作.如何在模拟对象中设置该变量?

php oop phpunit unit-testing mocking

8
推荐指数
3
解决办法
2万
查看次数

Objective-C我可以访问self.view但不能访问self.view.frame

我可以访问并显示self.view并在日志中查看框架,但是当我尝试访问self.view.frame时,我得到null.下面是日志输出

NSLog(@"Show self.view:%@",self.view);
NSLog(@"Show self.view.frame:%@",self.view.frame);
Run Code Online (Sandbox Code Playgroud)

-

2010-03-28 11:08:43.373 vivmed_CD_Tab[20356:207] Show self.view:<UITableView: 0x4001600; frame = (0 0; 320 583); clipsToBounds = YES; autoresize = W+H; layer = <CALayer: 0x3b21270>>
2010-03-28 11:08:43.373 vivmed_CD_Tab[20356:207] Show self.view.frame:(null)
Run Code Online (Sandbox Code Playgroud)

谁能解释为什么self.view.framenullself.view显示帧?我的目标是改变框架大小.

干杯,格兰特

objective-c uiview

8
推荐指数
1
解决办法
5476
查看次数

Ruby on Rails中的不良做法

我正在寻找Ruby on Rails中的一些不良实践示例,以便演示不该做什么.

我最大的就是在模型after_save hook上使用update_attribute.

Object.update_attribute(:only_one_field, "Some Value")  
Run Code Online (Sandbox Code Playgroud)

由于这是一个非常开放的问题,我将等待一周或两周,然后选择最有投票答案的答案.

玩得开心!

ruby-on-rails

8
推荐指数
1
解决办法
1644
查看次数

Mercurial钩子没有正确执行

这应该是一个非常简单的运行,但由于某种原因它不适用于我的Mercurial存储库.我想要的只是远程仓库hg update在有人推送时自动运行.所以我在.hg/hgrc文件中有这个:

[hook]
changegroup = hg update
Run Code Online (Sandbox Code Playgroud)

简单吧?但由于某种原因,这永远不会执行.我也尝试编写一个执行此操作的shell脚本..hg/hgrc看起来像这样:

[hooks]
changegroup = /home/marc/bin/hg-update
Run Code Online (Sandbox Code Playgroud)

和hg-update看起来像这样:

#!/bin/sh
hg help >> /home/marc/works.txt;
hg update >> /home/marc/works.txt;
exit 0;
Run Code Online (Sandbox Code Playgroud)

但同样,这不会更新.hg help写出来的内容works.txt,但没有写出来hg update.有什么明显的东西我在这里不见了吗?这一直困扰着我好几天,我似乎无法让它发挥作用.

更新

好的,再次,使用-v我的工作站命令行上的开关推送到远程仓库,即使我有这些echo行,也不打印任何详细消息.hg/hgrc.但是,当我从同一文件系统上的repo克隆推送(我通过SSH登录)时,这就是我得到的:

bash-3.00$ hg -v push ../test-repo/
pushing to ../test-repo/
searching for changes
1 changesets found
running hook prechangegroup: echo "Remote repo is at `hg tip -q`"
echo "Remote repo wdir is at `hg parents -q`"
Remote repo is …

version-control mercurial mercurial-hook

7
推荐指数
2
解决办法
7555
查看次数

申请将终止通知和保存草稿(核心数据)

如果用户当前在我的编辑视图控制器中,我希望能够在用户关闭我的应用程序时保存更改.为此,我正在观察UIApplicationWillTerminateNotification共享应用程序.在我的app委托中,我使用该applicationWillTerminate:方法关闭并释放所有核心数据上下文.

我发现的问题是任何观察者对通知作出反应之前applicationWillTerminate:,app委托中的方法被调用.这意味着在我的编辑视图控制器有机会保存任何内容之前,我的核心数据堆栈已经发布并关闭!UIApplicationWillTerminateNotification

这通常是如何克服的,因为我看不到方法!

非常感谢,

迈克尔

iphone core-data

7
推荐指数
1
解决办法
7413
查看次数

使用OCunit在iOS上测试异步代码

有没有人知道任何允许使用OCUnit测试异步代码的现有库?我正在考虑类似GHAsyncTestCase但是从中传递的东西SenTestCase.

我问,因为如果我找不到任何我将要移植GHAsyncTestCase到OCUnit,但我不想复制其他人已完成的工作.

iphone objective-c ios

7
推荐指数
2
解决办法
4139
查看次数