小编Evi*_*oer的帖子

骨干路由器导航和锚点href

在支持骨干的应用程序中,我看到了继续使用的代码<a href="#foo"></a>,而锚点击是由骨干事件处理程序处理的.

或者,导航到#foo可以通过以下方式处理:

Router.history.navigate("foo");
Run Code Online (Sandbox Code Playgroud)

我相信后者是一种优越的方法,因为它允许轻松迁移到HTML5的pushState功能.如果我们确实使用pushState,那么对于不支持pushState的浏览器,Backbone可以优雅地降级为#foo.

由于我还是Backbone的新手,有经验和知识渊博的人可以证实这是事实吗?

javascript backbone.js

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

Rails抓住所有路线

我正在使用rails 3.0.14,我正在使用资源丰富的样式构建routes.rb.我想要一个通配符路由,捕获所有与所述路由不匹配的请求.

构建这样一条路线的合适方法是什么?

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

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

跳转到方法实现的Xcode快捷方式?

Xcode中是否有键盘快捷键用于跳转到方法的实现?我知道命令+单击将跳转到定义,但我想跳转到实现方法,而不是定义.此外,我想使用键盘快捷键,不涉及鼠标(包括点击).

iphone xcode keyboard-shortcuts ios

17
推荐指数
3
解决办法
8896
查看次数

为什么最终二进制文件的大小会比静态库的大小小得多?

这是一个iOS问题.

我构建了一个静态库(iOS中的框架),然后将其包含在应用程序中.结果二进制(500kb)的大小小于静态库(6mb)的大小.这是如何运作的?我对静态库的理解是静态库包含在最终的二进制文件中

c build objective-c static-libraries ios

13
推荐指数
1
解决办法
2788
查看次数

关于UIButton状态的键值观察

UIButton有一个州财产,所有账户似乎都符合KVO标准,没有其他文件说明.但是,当我向UIButton的state属性添加一个观察者时,从未调用过观察者回调.怎么会?

iphone objective-c key-value-observing key-value-coding ios

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

NSCache自动删除策略

什么是NSCache的自动删除策略?Apple的文档没有提及它们,我通过实验发现NSCache没有响应内存警告.

iphone cocoa-touch objective-c ios

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

在drawRect中绘制圆角:比使用CALayer setCornerRadius更快?

在2011年的WWDC视频会话121中,为了提高UI的性能,演示者选择使用drawRect:中的UIBezierPath绘制圆角,而不是直接在图层上设置角半径.

为什么使用UIBezierPath绘图必然更快?drawRect:在软件中发生,也可能很慢.

cocoa-touch ios

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

6
推荐指数
1
解决办法
4559
查看次数

我们什么时候应该使用CATransformLayer?

我已经阅读了文档和几个例子,但仍然无法理解何时使用一个CATransformLayer.正常情况CALayer下,z = 0平面上的所有东西都会变平,但这不是什么CATransformLayer意思吗?数学解释会非常有用.

core-animation objective-c ios

6
推荐指数
2
解决办法
1859
查看次数

使用Objective C中的块编程进行内存管理

我正在调度队列中的完成块上阅读以下Apple文档,我无法理解其中的一部分.该文件提到,"为了防止过早释放队列,关键是要保持最初该队列,并释放它一旦完成块已经发出了." 这与我的理解相矛盾,即块在块闭包中保留了所有变量,块编程指南中提到了这些变量.

我在这里错过了什么?文档的片段粘贴在下面:

完成块只是您在原始任务结束时分派到队列的另一段代码.调用代码通常在完成任务时将完成块作为参数提供.所有任务代码必须做的是在完成其工作时将指定的块或函数提交到指定的队列.

清单3-4显示了使用块实现的平均功能.平均功能的最后两个参数允许调用者指定报告结果时要使用的队列和块.在averaging函数计算其值后,它会将结果传递给指定的块并将其分派到队列中.为防止队列过早释放,最初保留该队列并在分派完成块后释放该队列至关重要.清单3-4在任务之后执行完成回调

void average_async(int *data, size_t len, dispatch_queue_t queue, void (^block)(int))
{
   // Retain the queue provided by the user to make
   // sure it does not disappear before the completion
   // block can be called.
   dispatch_retain(queue);

   // Do the work on the default concurrent queue and then
   // call the user-provided block with the results.
   dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
   int avg = average(data, len);
   dispatch_async(queue, ^{ block(avg);});

   // Release the user-provided queue when done
   dispatch_release(queue);
   });
}
Run Code Online (Sandbox Code Playgroud)

iphone multithreading ios objective-c-blocks

5
推荐指数
1
解决办法
1382
查看次数