问题列表 - 第37420页

UITableView footerView带按钮,按钮不起作用

我正在尝试为我的UITableView页脚视图创建一个自定义视图,其中包含一个按钮.我可以在那里看到它,但当我触摸它时,没有任何反应......你能看出这里的错误:

- (void)viewDidLoad {
    [super viewDidLoad];

    if(self.tableView.tableFooterView == nil) {
        //allocate the view if it doesn't exist yet
        UIView *footerView  = [[UIView alloc] init];

        //create the button
        UIButton *addNewBtn = [UIButton buttonWithType:UIButtonTypeCustom];     
        //the button should be as big as a table view cell
        [addNewBtn setFrame:CGRectMake(0, 0, 320, [AddMerchantTVC cellHeight])];

        //set title, font size and font color
        [addNewBtn setTitle:@"Add New" forState:UIControlStateNormal];
        [addNewBtn.titleLabel setFont:[UIFont boldSystemFontOfSize:20]];
        [addNewBtn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
        [addNewBtn addTarget:self action:@selector(addNew:) forControlEvents:UIControlEventTouchUpInside];

        UIImageView *cellGradient = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"cellGradient.png"]];
        cellGradient.frame = …
Run Code Online (Sandbox Code Playgroud)

iphone footer uitableview

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

CherryPy结合了基于文件和字典的配置

我正在设置一个CherryPy应用程序,并希望将大部分配置设置放在.conf文件中,如下所示:

[global]
server.socketPort = 8080
server.threadPool = 10
server.environment = "production"
Run Code Online (Sandbox Code Playgroud)

但是,我还想在代码中设置一些字典,如下所示:

conf = {'/': {'tools.staticdir.on': True, 
              'tools.staticdir.dir': os.path.join(current_dir, 'templates')}}             

cherrypy.quickstart(HelloWorld(), config=conf)
Run Code Online (Sandbox Code Playgroud)

是否可以将两个配置组合成一个,然后将其传递给config quickstart选项?

python configuration cherrypy

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

关于如何改进当前模糊搜索实现的建议

我正在努力实现术语Web服务的模糊搜索,我正在寻找关于如何改进当前实现的建议.分享的代码太多了,但我认为解释可能足以提出深思熟虑的建议.我意识到这是很多东西,但我很感激任何帮助.

首先,术语基本上只是一些名称(或术语).对于每个单词,我们按空格将其拆分为标记,然后遍历每个字符以将其添加到trie.在终端节点上(例如当达到草莓中的字符y时),我们在列表中存储主术语列表的索引.因此,终端节点可以具有多个索引(因为草莓的终端节点将匹配'草莓'和'对草莓过敏').

对于实际搜索,搜索查询也按空间分解为标记.为每个令牌运行搜索算法.搜索令牌的第一个字符必须匹配(因此traw永远不会匹配草莓).之后,我们通过每个连续节点的子节点.如果有匹配的字符的子项,我们继续使用搜索令牌的下一个字符进行搜索.如果孩子与给定的角色不匹配,我们会使用搜索令牌的当前角色来查看孩子(因此不会推进它).这是模糊部分,因此'stwb'将匹配'草莓'.

当我们到达搜索令牌的末尾时,我们将搜索该节点处的其余trie结构以获得所有可能的匹配(因为到主术语列表的索引仅在终端节点上).我们称之为卷起.我们通过在BitSet上设置它们的值来存储索引.然后,我们简单地从每个搜索令牌的结果中得到BitSets.然后,我们从anded BitSet中获取前1000或5000个索引,并找到它们对应的实际项.我们使用Levenshtein对每个术语进行评分,然后按分数进行排序以获得最终结果.

这种方法效果很好而且非常快.树中有超过390k个节点,超过110万个实际术语名称.但是,现在存在问题.

例如,当我们不想要它时,搜索'car cat'将返回Catheterization(因为搜索查询是两个单词,结果应该至少为两个).这很容易检查,但它不会像导管过程那样处理,因为它是两个字.理想情况下,我们希望它与Cardiac Catheterization相匹配.

基于纠正这个问题的需要,我们想出了一些改变.首先,我们通过混合深度/广度搜索来检查trie.基本上,只要角色匹配,我们就会先进入深度.那些不匹配的子节点将添加到优先级队列中.优先级队列按编辑距离排序,可以在搜索特里时计算(因为如果有字符匹配,则距离保持不变,如果不匹配,则增加1).通过这样做,我们得到每个单词的编辑距离.我们不再使用BitSet了.相反,它是Terminfo对象的索引映射.此对象存储查询短语的索引以及术语短语和分数.因此,如果搜索是"汽车猫"并且匹配的术语是"导管过程" 术语短语索引将是1,查询短语索引也是如此.对于"心脏导管",术语短语索引将是1,2,查询短语索引也是如此.正如您所看到的,之后查看术语短语索引和查询短语索引的计数非常简单,如果它们不至少等于搜索词计数,则可以将它们丢弃.

之后,我们将单词的编辑距离相加,从与术语短语索引匹配的术语中删除单词,并计算剩余的字母以获得真正的编辑距离.例如,如果您将术语"过敏与草莓"匹配并且您的搜索查询为"稻草",您将从草莓中获得7分,那么您将使用术语短语索引从该术语中丢弃草莓,并且只计算"过敏"(减去空格)得分为16分.

这让我们得到了我们期望的准确结果.但是,它太慢了.在一个单词搜索之前我们可以获得25-40毫秒,现在它可能多达半秒.它主要来自实例化TermInfo对象,使用.add()操作,.put()操作以及我们必须返回大量匹配这一事实.我们可以将每次搜索限制为仅返回1000个匹配,但不能保证"car"的前1000个结果将匹配"cat"的前1000个匹配中的任何一个(记住,有超过1.1万个术语).

即使对于像cat一样的单个查询词,我们仍然需要大量的匹配.这是因为如果我们搜索'cat',搜索将匹配汽车并汇总其下方的所有终端节点(这将是很多).但是,如果我们限制结果的数量,则会过于强调以查询开头而不是编辑距离的单词.因此,像导尿管这样的词语比涂层更容易被包括在内.

那么,基本上,对于我们如何处理第二个实现修复的问题有什么想法,但没有引入的速度减慢那么多吗?我可以包含一些选定的代码,如果它可以使事情更清楚,但我不想发布一个巨大的代码墙.

java algorithm performance fuzzy-search levenshtein-distance

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

转置列表清单

我试图做一个递归函数来获取一个列表的列表的转置n x pp x n.但我无法这样做.我已经能够创建一个函数来将3 x n列表列表转换为一个列表n x 3:

let rec drop1 list=
    [(match (List.nth list 0) with [] -> [] | a::b -> b);
     (match (List.nth list 1) with [] -> [] | a::b -> b);
     (match (List.nth list 2) with [] -> [] | a::b -> b);]

let rec transpose list=
    if List.length (List.nth list 0) == 0 then []
    else [(match (List.nth list 0) with [] -> 0 | …
Run Code Online (Sandbox Code Playgroud)

ocaml

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

jqGrid清除搜索条件

目前我已启用网格设置并启用搜索.当我运行搜索时,一切正常,我可以将好数据返回到网格.我看到URL上的"_search"参数设置为"true",一切都很好.

但是,当完成搜索并且数据不再相关时,我想重新加载网格以显示那里的先前数据(初始页面加载上显示的数据).我做了一个函数来调用"trigger("reloadGrid")"方法,但是只发送相同的数据,而"_search"仍设置为"true".

有没有办法清除搜索请求数据,只是重新加载页面加载上显示的初始数据或至少将"_search"值设置回"false",以便我可以检查它?目前显示原始数据的唯一方法是重新加载页面.

search jquery jqgrid

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

根据字长打印直方图(C)

这是K&R演习(1-13)......

"编写一个程序,在其输入中打印单词长度的直方图.可以很容易地绘制水平条形图的直方图;垂直方向更具挑战性."

该部分是关于数组的,说实话,我不确定我是否完全理解它.到目前为止,一切都很容易掌握,但事实并非如此.

无论如何我首先尝试用水平条做直方图.一旦我把它弄下来,我会尝试垂直,但是现在我甚至不确定从哪个版本开始.(我睡在上面,醒了,仍然无法得到它.)

我画了一个程序输出内容的例子:

----------------------------------------------------------------
001|XX
002|XXXX
003|X
004|XXXXXXXXXX
005|XXXXXXXXXXXXXXXXXXXXXXXXX
006|XXXX
007|X
008|
009|XXXXXXXXX
010|XXX
>10|XXXX
----------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

并试图将它(程序)分成几部分.这就是我想出的:

  1. 打印顶部边框
  2. 打印类别,打印X每个时间条件都是正确的,打印NEWLINE,REPEAT.
  3. 打印底部边框

但我想的越多,我认为它的工作方式就越少(因为它一次只能getchar()通过一个角色,而且无法重新将X放入正确的类别.)或者...... .

......我真的很困惑,我将如何解决这个问题.据我所知,我已经能够获得代码明智:

#include <stdio.h>

#define MAXWORDLENGTH 10

// print a histogram of the length of words in input. horizontal bar version

int main(void)
{
  int c;
  while ((c = getchar()) != EOF) {

  }

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

有人可以帮助启发我吗?不一定是代码,可能只是伪代码,或者一些"智者的话",关于我需要做什么,想什么,或者其他什么.这只是路上真正的大石头,我想通过它:/.

(我会在30分钟后回来查看)

c

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

使用NoRM在MongoDB中进行延迟加载

我有一个类似的模型:(简化)

题:

public class Question
{
    public string QuestionID { get; set; }

    public string Title { get; set; }
    public string Body { get; set; }

    public List<Answer> Answers { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

回答:

public class Answer
{
    public string QuestionID { get; set; }
    public string Body { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我打算将数据存储在MongoDB中,并希望使用NoRM.

我的问题是:是否支持延迟加载?或者我可以将其设置为在文档存储上进行延迟加载..?

所以请求一个问题,也检索答案..?(两者都是存储在MongoDB上相同集合中的"帖子")

c# lazy-loading mongodb norm

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

延迟后如何popViewControllerAnimated?

我有一个UITableViewController,它带有一个选项列表.在用户点击一个之后,我想返回上一个视图.使用我正在使用的代码,返回似乎太快了.我想暂停0.2秒左右,让用户有时间查看他们的选择.这是我现在使用的代码:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    NSUInteger oldSelection = [[selectedCriteria objectAtIndex:criteriaSection] integerValue];

    [tableView deselectRowAtIndexPath:indexPath animated:YES];
    // Since there's a "none" selection, we don't deselect if the user taps the one that's already selected
    if ([indexPath row] != oldSelection + 1) {
        NSIndexPath *selectionIndexPath = [NSIndexPath indexPathForRow:oldSelection+1 // Shift down for "None"
                                                inSection:[indexPath section]];
        UITableViewCell *checkedCell = [tableView cellForRowAtIndexPath:selectionIndexPath];
        [checkedCell setAccessoryType:UITableViewCellAccessoryNone];

        [[tableView cellForRowAtIndexPath:indexPath] setAccessoryType:UITableViewCellAccessoryCheckmark];
        [selectedCriteria replaceObjectAtIndex:criteriaSection
                                    withObject:[NSNumber numberWithUnsignedInteger:[indexPath row]-1]];     
    }

    [[self navigationController] popViewControllerAnimated:YES];
}
Run Code Online (Sandbox Code Playgroud)

是否有一种在弹出视图控制器之前添加短延迟的好方法?

iphone cocoa-touch objective-c uikit ios

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

找出一组中的数字组合加起来给定的总数

我的任务是帮助一些会计师解决他们遇到的常见问题 - 给出交易清单和总存款,哪些交易是存款的一部分?例如,假设我有这个数字列表:

1.00
2.50
3.75
8.00
Run Code Online (Sandbox Code Playgroud)

我知道,我的存款总额是10.50,我可以很容易地看到它弥补了中8.002.50交易.然而,鉴于一百笔交易和数百万美元的存款,它很快变得更加困难.

在测试蛮力解决方案(花费太长时间以实现)时,我有两个问题:

  1. 有了大约60个数字的列表,它似乎找到了十几个或更多的组合,任何合理的总数.我期待一个单一的组合来满足我的总数,或者可能是一些可能性,但似乎总是有很多组合.是否有一个数学原理描述了为什么会这样?看来,即使是中等大小的随机数集合,您也可以找到多个组合,几乎可以达到您想要的总数.

  2. 我为这个问题建立了一个强力解决方案,但它显然是O(n!),并且很快失控.除了明显的快捷方式(排除大于总数的快捷方式),有没有办法缩短计算时间?

我当前(超慢)解决方案的详细信息:

详细信息量列表从最大到最小排序,然后以下过程以递归方式运行:

  • 获取列表中的下一个项目,看看是否将其添加到运行总计中使您的总匹配成为目标.如果是,请将当前链作为匹配项.如果未达到目标,请将其添加到运行总计中,将其从详细信息量列表中删除,然后再次调用此过程

通过这种方式,它可以快速排除较大的数字,将列表缩小到只需要考虑的数字.但是,它仍然是n!似乎永远不会完成更大的列表,所以我对我可以采取的任何快捷方式感兴趣 - 我怀疑即使从列表中删除1个数字也会将计算时间缩短一半.

谢谢你的帮助!

algorithm math accounting nested-loops

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

在C#中每行读取一个字符串行

可能重复:
在.net中的换行符上拆分字符串的最简单方法?

我试图读出并解释每行的字符串行.我看了一下StringReader类,但是当我在最后一行时,我需要找出它.这是我想要完成的一些伪代码:

while (!stringReaderObject.atEndOfStream()) {
    interpret(stringReaderObject.readLine());
}
Run Code Online (Sandbox Code Playgroud)

有人知道怎么做吗?

谢谢!

伊凡

c# string

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