问题列表 - 第42069页

如何在UIView中删除NSNotification的观察者?

我在我创建的自定义UIView中添加了一个观察者initWithFrame:.

[[NSNotificationCenter defaultCenter] addObserver:self 
         selector:@selector(updateZipFromLocation:) 
          name:@"zipFoundFromLocation" 
           object:nil];
Run Code Online (Sandbox Code Playgroud)

问题是,这个视图是一个子视图.再次加载视图时,它再次调用initWithFrame消息,从而添加两个观察者,依此类推.当视图消失时,如何删除观察者?因为它是a UIView,它说这viewWillDisappear:(BOOL)animated不是一个有效的方法.有任何想法吗?

iphone cocoa-touch objective-c nsnotifications uiview

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

我怎么知道mysql表是使用myISAM还是InnoDB引擎?

在MySQL中,无法为特定数据库指定存储引擎,仅针对单个表.但是,您可以指定在一个会话期间使用的存储引擎:

SET storage_engine=InnoDB;
Run Code Online (Sandbox Code Playgroud)

因此,您不必为每个表指定它.

如果确实所有表都使用InnoDB,我如何确认?

mysql myisam innodb storage-engines

81
推荐指数
3
解决办法
6万
查看次数

Python多处理问题

我的程序有两部分分为核心和下载程序.核心处理所有应用程序逻辑,而下载程序只下载URL.现在,我正在尝试使用python多处理模块来完成作为进程的核心任务和作为进程的下载程序.

我注意到的第一个问题是,如果我从核心进程生成下载程序进程,以便下载程序是子进程而核心是父进程,则核心进程(父进程)将被阻塞,直到子进程完成.我不想要这种行为.我希望有一个核心流程和一个下载程序,它们都能够执行代码并在彼此之间进行通信.

...
def main():
    jobQueue = Queue()
    jobQueue.put("http://google.com)
    d = Downloader(jobQueue)
    p = Process(target=d.start())
    p.start()

if __name__ == '__main__':
    freeze_support()
    main()
Run Code Online (Sandbox Code Playgroud)

其中Downloader的start()只是将url从队列中取出并下载.

为了让2个进程解除阻塞,我是否需要从父进程创建2个进程然后在它们之间共享?

python multiprocessing

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

命令行打印文件名到输出文件

这在Linux中似乎很容易,但我正在尝试将目录及其子目录中的*.pdf文件的名称打印到输出文件中.我在我的Windows机器上安装了perl.有什么简单的方法可以做到这一点?

谢谢,杰克

windows printing perl command-line

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

tomcat不会在linux机器上启动

我是Linux的新手,但我花了一整天时间安装了Java和Tomcat.我的目标是使用这个Linux机器托管应用程序.我知道从我的基于Windows的机器一切正常,但它是我的笔记本电脑所以我打算使用Linux Box作为我的专用服务器.

在许多论坛之后,我现在已经安装了Tomcat 7.但是我无法开始.

更改为tomcat目录和"./startup.sh"我得到以下输出:

Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME:  /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: usr/lib/jvm/java-6-sun/
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Run Code Online (Sandbox Code Playgroud)

那是输出的结束.

但是localhost:8080没有启动,并且在tomcat日志文件中出现错误"eval:1:usr/lib/jvm/java-6-sun // bin/java:not found"

希望这里有一些专家可以帮助我解决这个问题.请注意,对于Linux,我是新手.

PS:我的Linux版本是Ubuntu 10.04 LTS - Lucid Lynx

java linux tomcat

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

可以从ActionFilter中获取方法中使用的参数值吗?

假设我有一个像这样的控制器方法:

[Audit]
public JsonNetResult List(int start, int limit, string sort, string dir, string searchValue, SecurityInputModel securityData)
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

以及如此定义的属性:

[AttributeUsage(AttributeTargets.Method)]
public class AuditAttribute : ActionFilterAttribute
{

    public override void OnActionExecuted(ActionExecutedContext filterContext)
    {
        // auditing code here

        base.OnActionExecuted(filterContext);

    } 
}
Run Code Online (Sandbox Code Playgroud)

我可以从OnActionExecuted()里面得到start/limit/sort/etc的值吗?

c# parameters action-filter

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

如何获得经过时间和格式化?

我有两个unix时间戳作为LONG INT.我想从末尾开始减去经过的时间并将其格式化为hh:mm:ss

我该怎么做呢?谢谢

delphi

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

使用ExpressionVisitor获取所有"where"调用

我有一个查询,像这样:

var query = from sessions in dataSet
                    where (names.Contains(sessions.Username))
                    where (sessions.Login.TimeOfAction == dt)                    
                    select new {    sessions.Username, 
                                    sessions.Login, 
                                    sessions.Logout, sessions.Duration };
Run Code Online (Sandbox Code Playgroud)

我想实现一个ExpressionVisitor来提取where子句作为Lambda,但到目前为止只能使用一个名为'InnermostWhereFinder'的类来获得第一个,该类来自TerraServer Web服务的自定义查询提供程序上的MSDN教程.

它是:

internal class InnermostWhereFinder : ExpressionVisitor
    {
        private MethodCallExpression innermostWhereExpression;

        public MethodCallExpression GetInnermostWhere(Expression expression)
        {
            Visit(expression); 
            return innermostWhereExpression;
        }

        protected override Expression VisitMethodCall(MethodCallExpression expression)
        {
            if (expression.Method.Name == "Where")
                innermostWhereExpression = expression;

            Visit(expression.Arguments[0]);

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

我曾经尝试过大量调整这个类来返回两个没有成功的子句.找不到任何关于此的好文档,任何人都可以帮忙吗?我认为这最终需要产生多个可以使用的LambdaExpression对象.

c# linq lambda iqueryable expression-trees

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

Grails编译器一次又一次地运行,可能是因为语法错误

我多次遇到这个问题:有时当我命令:grails run-app时,编译器只是一次又一次地运行,即使我之后没有改变.看起来像:

Running Grails application..
Server running. Browse to http://localhost:8080/LiningTest
  [groovyc] Compiling 1 source file to E:\workspace\W1\LiningTest\target\classes

  [groovyc] Compiling 2 source files to E:\workspace\W1\LiningTest\target\classe
s
   [delete] Deleting directory C:\Documents and Settings\Long\.grails\1.3.6\proj
ects\LiningTest\tomcat
Running Grails application..
Server running. Browse to http://localhost:8080/LiningTest
  [groovyc] Compiling 1 source file to E:\workspace\W1\LiningTest\target\classes

  [groovyc] Compiling 2 source files to E:\workspace\W1\LiningTest\target\classe
s
   [delete] Deleting directory C:\Documents and Settings\Long\.grails\1.3.6\proj
ects\LiningTest\tomcat
Running Grails application..
Server running. Browse to http://localhost:8080/LiningTest
  [groovyc] Compiling 1 source file to E:\workspace\W1\LiningTest\target\classes
...
Run Code Online (Sandbox Code Playgroud)

编译器在"服务器运行"时成功,但随后它会自动重新编译一些文件(我不知道哪个文件),然后重新运行,然后重新编译...

当我遇到语法错误时,我遇到过这个问题 …

grails

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

如何从git存储库中删除旧历史记录?

我恐怕找不到任何类似这种特殊场景的东西.

我有一个有很多历史的git存储库:500多个分支,500多个标签,可以追溯到2007年中期.它包含~19,500次提交.我们想在2010年1月1日之前删除所有历史记录,以使其更小更容易处理(我们将在存档库中保留历史记录的完整副本).

我知道我想要成为新存储库的根目录的提交.但是,我不能找出正确的git mojo来截断repo以从那个提交开始.我猜的是一些变种

git filter-branch
Run Code Online (Sandbox Code Playgroud)

涉及移植是必要的; 它也可能是必要的对待每一个我们要分别保持在200多个分支机构,然后修补回购重新走到一起(这是我知道该怎么做).

有没有人做过这样的事情?如果重要的话,我有git 1.7.2.3.

git git-filter-branch

188
推荐指数
8
解决办法
11万
查看次数