小编Sar*_*h W的帖子

如果我在Ruby on Rails中有一个哈希值,有没有办法让它无关紧要?

如果我已经有哈希,我可以这样做

h[:foo]
h['foo']
Run Code Online (Sandbox Code Playgroud)

是相同的?(这被称为无关紧要的访问吗?)

细节:我使用以下内容加载此哈希,initializers但可能不应该有所作为:

SETTINGS = YAML.load_file("#{RAILS_ROOT}/config/settings.yml")
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails ruby-on-rails-3

59
推荐指数
5
解决办法
3万
查看次数

如果main()创建一个NSAutoreleasePool并在退出之前将其排干,这是否重要?

因为如果main()创建一个NSAutoreleasePool,并在程序退出之前将其排出,那么即使它可以防止内存泄漏,整个过程的内存空间也会随后被释放 - 如果整个部分我们释放一些小块是否重要下一个被释放?事实上,如果它继续处理小块,它不会导致程序退出更慢?

(drain可以调用release,反过来调用dealloc,但如果dealloc只是为了释放内存而不是其他任何东西(比如关闭文件),那么drain将无助于释放内存)

cocoa memory-management nsautoreleasepool

3
推荐指数
1
解决办法
136
查看次数

在iOS上,屏幕上绘制任何内容的整体机制是什么?

我想知道为什么我们是子类UIView,并且我们实现了一个drawRect被调用的方法,但同时,如果我们向这个视图添加按钮或标签,并调整它们的位置坐标,那么它们也会被重新绘制.因此,对于这个视图似乎有两种绘制机制,一种是为自己绘制,另一种是在该视图中用于对象.

但事实证明,似乎每隔1/60秒,整棵树就被遍历了.从顶部视图对象开始,iOS版将访问所有的孩子们,然后调用drawRectself,和孩子们还参观了同样的方式,将孙子被访问,并且drawRect被每一个信息的第一级的孩子,如:

-(void) processViewObject:(UIView *) obj {
    // pseudo code:
    foreach children "c" already sorted by zOrder from most negative to -1
        processViewObject(c)    // recursion

    if ([self needsUpdateOrNot] == YES)
        [self drawRect]

    foreach children "c" already sorted by zOrder from 1 to the greatest number
        processViewObject(c)   // recursion
}
Run Code Online (Sandbox Code Playgroud)

并且每1/60秒拨打一次电话

processViewObject(topViewObject);    //  start from the topmost view object
Run Code Online (Sandbox Code Playgroud)

因此,任何视图都可以自己绘制drawRect,并且视图的子节点,如果它们的位置坐标被修改,或者它们的内容被更改,那么needsUpdateOrNot之前已经设置了脏位,因此drawRect将调用它们来重新绘制自身.

或者实际上,如果设置了一个视图的脏位,那么这个位可能会传递给递归中的子节点,如:

    foreach children "c" already …
Run Code Online (Sandbox Code Playgroud)

user-interface cocoa-touch ios

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