问题列表 - 第36629页

理解Javascript中的闭包

我试图在Javascript中包围我的头.

以下是教程中的示例:

function greeter(name, age) {
  var message = name + ", who is " + age + " years old, says hi!";

  return function greet() {
    console.log(message);
  };
}

// Generate the closure
var bobGreeter = greeter("Bob", 47);

// Use the closure
bobGreeter();
Run Code Online (Sandbox Code Playgroud)

作者说这是使用闭包来制作私有变量的有效方法,但我不明白这一点.

有人可以启发像这样编码的好处吗?

javascript closures

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

C#序列化静态字段中的"默认"序列化吗?

"默认"是指只使用类上的[Serializable]属性.我想说不,静态字段不会被序列化,但我不完全确定.

c# serialization static

28
推荐指数
1
解决办法
5763
查看次数

滚动性能和UIImage绘图

我正在构建一个类似于iPod.app的专辑浏览视图的UITableView:

IMG_2316.PNG

我是在首次推出时从iPod库导入所有艺术家和专辑作品.将所有内容保存到CoreData并将其恢复为NSFetchedResultsController.我正在重用单元格标识符,在我的cellForRowAtIndexPath:方法中我有这个代码:

Artist *artist = [fetchedResultsController objectAtIndexPath:indexPath];
NSString *identifier = @"bigCell";

SWArtistViewCell *cell = (SWArtistViewCell*)[tableView dequeueReusableCellWithIdentifier:identifier];

if (cell == nil)
    cell = [[[SWArtistViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier] autorelease];

cell.artistName = artist.artist_name;
cell.artworkImage = [UIImage imageWithData:artist.image];

[cell setNeedsDisplay];

return cell;
Run Code Online (Sandbox Code Playgroud)

我的SWArtistViewCell单元格实现了drawRect:绘制字符串和图像的方法:

[artworkImage drawInRect:CGRectMake(0,1,44,44)]
[artistName drawAtPoint:CGPointMake(54, 13) forWidth:200 withFont:[UIFont boldSystemFontOfSize:20] lineBreakMode:UILineBreakModeClip];
Run Code Online (Sandbox Code Playgroud)

滚动仍然不稳定,我只是无法弄清楚原因.像iPod和Twitter这样的应用程序有黄油平滑滚动,但他们都像我一样在单元格中绘制一些小图像.

我的所有观点都是不透明的.我错过了什么?

编辑:这是Shark所说的:

替代文字

我不熟悉鲨鱼.任何指针与这些符号有什么关系?当我看到这些的痕迹时,它们都指向我的drawRect:方法,特别是UIImage绘图.

替代文字

如果扼杀是文件读取,它会指向别的东西吗?这绝对是绘画吗?

编辑:保留图像

我已经按照pothibo的建议完成了,并将一个artworkImage方法添加到我的Artist类中,该类保留了使用imageWithData创建的图像:

- (UIImage*)artworkImage {
    if(artworkImage == nil)
        artworkImage = [[UIImage imageWithData:self.image] retain];

    return artworkImage;
}
Run Code Online (Sandbox Code Playgroud)

所以现在我可以直接将保留的图像设置为我的TableViewCell,如下所示:

cell.artworkImage = artist.artworkImage;
Run Code Online (Sandbox Code Playgroud)

我还在我的tableViewCell类的setArtworkImage:方法中设置了setNeedsDisplay.滚动仍然是滞后的,Shark显示完全相同的结果.

iphone performance scroll image uitableview

4
推荐指数
1
解决办法
2910
查看次数

标准排序网络,用于n的小值

我正在寻找一个5元素排序的排序网络实现,但由于我在SO上找不到一个好的参考,我想要求为所有小的n值排序网络,至少n = 3通过n = 6但更高的值也会很好.一个好的答案至少应该将它们列为"交换"(对2个元素进行排序)操作的序列,但是在低阶排序网络方面看到递归分解也可能会很好.

对于我的应用程序,我实际上只关心5个元素的中位数,而不是实际按顺序排列.也就是说,只要中位数在正确的位置结束,结果中可能未指定其他4个元素的顺序.可以使用与排序网络相关的方法来计算交换数量少于执行完整排序的中位数吗?如果是这样,我的问题(对于n = 5)和其他情况的这种解决方案也会得到一个很好的答案.

(注意:我已经标记了这个问题C,因为C是我使用的语言,我怀疑跟随C标签的人有很好的答案,但我真的不在乎答案实际上是用C编写而不是伪代码只要符合上述标准,它就可以很容易地转换成C语言.)

c sorting median sorting-network

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

移动Safari中的线条工件

Safari在我的网站上以某种比例在div之间呈现黑线.当它为一个按钮或其他东西分割出两个不同div的图像时,它会特别糟糕.我不能将BG放在两个div的父级中,因为它们是透明的.pngs.任何解决方案或只是处理它?

捕获问题,http://i.stack.imgur.com/pTLki.png

TravisO也有同样的问题,我改变了页面布局的方式,原来它是一个有5行的简单表,我删除了行,只是用图像和br,仍然发生.我试图通过CSS删除所有填充和边距,但很明显问题不是浏览器渲染,而是重新采样浏览器会将页面转换为适合屏幕的大小.你可以看到我的破页:

http://www.apinkdoor.com/show/

iphone mobile-safari ipad ios4 ios

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

如何将具有HABTM关系的模型与其他种子模型联系起来

我正在研究我的第一个Rails(3)应用程序,并期待播种一堆数据.

我遇到的问题是我想要种一些与我刚播种的其他模型有一个has_and_belongs_to_many关系的模型.我做的似乎是正确的,但我没有得到我期待的结果.

我有一个Asana模型(简化):

class Asana < ActiveRecord::Base
  has_and_belongs_to_many :therapeutic_foci
end
Run Code Online (Sandbox Code Playgroud)

和TherapeuticFocus模型:

class TherapeuticFocus < ActiveRecord::Base
  has_and_belongs_to_many :asanas
end
Run Code Online (Sandbox Code Playgroud)

在我的db/seeds.rb中,我创建了一些TherapeuticFoci:

tf = TherapeuticFocus.create([
  {:name => 'Anxiety'},
  {:name => 'Asthma'},
  {:name => 'Fatigue'},
  {:name => 'Flat Feet'},
  {:name => 'Headache'},
  {:name => 'High Blood Pressure'},
  {:name => 'Stress'} ])
Run Code Online (Sandbox Code Playgroud)

然后创建一个Asana:

asanaCreate = Asana.create!([
  { :english_name => 'Mountain Pose', 
    :traditional_name => 'Tadasana', 
    :pronunciation => 'TadaSANA', 
    :deck_set => 'Basic', 
    :type => 'Standing', 
    :therapeutic_foci => TherapeuticFocus.where("name in ('Stress','Flat Feet')")}
])
Run Code Online (Sandbox Code Playgroud)

结果是创建了TherapeuticFocus模型,创建了Asana,但它并没有创建与TherapeuticFocus模型的关系.结果数组为空.

如果我跑

TherapeuticFocus.where("name in ('Stress','Flat …
Run Code Online (Sandbox Code Playgroud)

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

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

Emacs:持续突出某个地区

Emacs扩展markerpen.el(链接文本)允许您高亮显示缓冲区中的任意区域.通过此扩展,一旦您杀死缓冲区,添加的突出显示将丢失.但是,能够以"持久"的方式突出显示文件的任意区域会很好 - 因为在关闭文件后添加的高亮显示不会丢失.

你知道我有什么方法可以有这样一个"持久"的突出显示吗?

非常感谢.

emacs highlighting

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

我的for循环有什么问题?

我正在使用lite-C制作游戏(与C语法完全相同).我无法使这个循环工作.它在编译时在这一行给出了一个错误.
for(int i = 0; i < (cantenemigu * 3); i += 3)

我有一个数组,其中包含创建敌人的信息.数组包含x,y,z坐标.
cantenemigu是阵列中存在的敌人数量.

通过这个循环,我将获得每个敌人的信息并创建它.

[编辑]答案没有用.我加了; 在写这篇文章时非常不自觉.

也许问题出在其他地方;

这是洞的一部分.

int cantenemigu = 3;
var posenemigu[] = {-900, 550, -10, -1100, 1600, -10, 70, 1680, 20};
void load_enemigunan()
{ 
 for(int i = 0; i < (cantenemigu * 3); i += 3) 
 {
  ent_create("targetr.mdl",vector(posenemigu[i],
             posenemigu[i + 1],
             posenemigu[i + 2]),NULL);
 } 
}
Run Code Online (Sandbox Code Playgroud)

如果我不添加<br>,这是代码

我解决了

这很有效.

int i
for(i = 0; i < 3*cantenemigu; i += 3)
{
    ent_create("targetr.mdl",vector(posenemigu[i],
                                                posenemigu[i + 1], …
Run Code Online (Sandbox Code Playgroud)

c arrays loops for-loop

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

对Web SQL数据库的同步查询

我工作的一个JavaScript代码与客户端SQLite数据库进行交互的,通过新望window.openDatabase(...),database.transaction(...)和相关的API.正如大多数人所知,当你以这种方式执行查询时,它是一个异步调用,这通常很好.您可以根据回调进行调用并处理结果.

在我目前的情况下,我正在为一个客户端工作,该客户端在本地存储的数据库中执行某些层次结构.我遇到麻烦的算法部分需要从某一行开始,该行有一个"父"(由id)引用,这是表中的另一行.我必须继续走这棵树直到我到达根部.

问题是,我不知道如何使用带回调的异步样式查询来继续提供循环父ID.理想情况下,我可以阻止查询,以便我可以在循环中完成所有操作.这是我当前设置的关键部分:

    for (i in search.searchResults.resultsArray)
    {
        hierarchyArr = new Array();
        pageHierarchyArr = new Array();
        id = search.searchResults.resultsArray[i].ID;

        while (id != null && id != "")
        {
            var hierarchySql = "SELECT ID, parentID, type, content FROM content WHERE ID = " + id;

            // This is a prettied up call to database.transaction(...)
            var rs = db.getRS(hierarchySql);

            // Ideally the code below doesn't execute until rs is populated

            hierarchyArr.push(rs[0]);

            if (rs[0].type == "page")
            {
                pageHierarchyArr.push(rs[0]);

                // …
Run Code Online (Sandbox Code Playgroud)

javascript sqlite synchronization web-sql

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

如何检查函数调用是否会导致警告?

在R中,如何确定函数调用是否会导致警告?

也就是说,在调用函数之后,我想知道该调用的实例是否产生了警告.

r

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