问题列表 - 第24433页

拆分视图控制器必须是根视图控制器

每当我尝试以模态方式呈现UISplitViewController时,应用程序崩溃.因此,它必须始终是根视图控制器.任何人都可以证实吗?

ipad uisplitviewcontroller ios

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

函数返回的字符串文字的生命周期

考虑以下代码:

const char* someFun() {
    // ... some stuff
    return "Some text!!"
}

int main()
{
   { // Block: A
      const char* retStr = someFun();
      // use retStr
   }
}
Run Code Online (Sandbox Code Playgroud)

在函数中someFun(),"Some text!!"存储的位置(我认为它可能在ROM的某个静态区域)以及它是什么范围 一生?

指向的内存是否会在retStr整个程序中被占用,或者在块A退出后被释放?

c c++ lifetime string-literals

25
推荐指数
3
解决办法
5435
查看次数

复制Ruby字符串数组

arr = ["red","green","yellow"]

arr2 = arr.clone
arr2[0].replace("blue")

puts arr.inspect
puts arr2.inspect
Run Code Online (Sandbox Code Playgroud)

生产:

["blue", "green", "yellow"]
["blue", "green", "yellow"]
Run Code Online (Sandbox Code Playgroud)

无论如何都要做一个字符串数组的深层副本,除了使用Marshal,因为我知道这是一个黑客.

我可以:

arr2 = []
arr.each do |e|
  arr2 << e.clone
end
Run Code Online (Sandbox Code Playgroud)

但它似乎并不优雅或高效.

谢谢

ruby arrays clone copy dup

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

您如何防范特定的CSRF攻击

我将通过2007年2010年OWASP十大名单.

我偶然发现Cross Site Request Forgery(CSRF)这通常被称为会话骑行,因为您让用户使用他的会话来实现您的愿望.

现在解决方案是向每个URL添加一个令牌,并为每个链接检查此令牌.

例如,对产品x进行投票,网址为:

'http://mysite.com?token=HVBKJNKL'
Run Code Online (Sandbox Code Playgroud)

这看起来像是一个可靠的解决方案,因为黑客无法猜出令牌.

但我正在考虑以下场景(我不知道是否可能):

您创建一个隐藏的iFrame或div的网站.之后,您可以使用普通的iFrame或ajax加载我的网站.

如果您的网站已隐藏在您的网站内,并且用户已存储会话,则可以执行以下操作.您可以从URLS检索令牌,并仍然执行所需的所有操作.

有可能做这样的事情.或者是不可能做这个跨域.

security csrf owasp

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

在.js文件中使用外部javascript文件

我想在另一个javascript文件中使用外部javascript文件.例如,我可以将所有全局变量存储在globals.js文件中,然后从网站逻辑logic.js调用.然后在index.html中,我会插入标记.如何在logic.js中使用globals.js?

javascript

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

元素索引,jQuery或Javascript

我有一个包含3列的表.我需要绑定一个事件,只要使用jQuery单击其中一列,就会触发该事件.

但是,我需要知道单击列的索引.

ie:第一列(索引0),第二列(索引1),第三列(索引2),依此类推......

我怎样才能做到这一点?

var firstRow:

var firstRow = $("tr:first > th", "table[id*=Grid]");
Run Code Online (Sandbox Code Playgroud)

看一看:

firstrow.click(function(e){
//var id = e.target.index;
var id = $(e).parent().children().index(this);//returns -1
})
Run Code Online (Sandbox Code Playgroud)

indexing jquery

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

如何使用堆找到线性时间内的数字中位数?

维基百科说:

选择算法:使用堆可以在线性时间内完成最小值,最大值,最小值和最大值,中值或甚至第k个最大元素的查找.

它说的只是它可以完成,而不是如何完成.

你能给我一些关于如何使用堆来完成这项工作的开始吗?

algorithm heap time-complexity median

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

QuickReport抛出"当前没有默认打印机选择"的例外情况

我创建了一个打印TQuickReports的Delphi服务.如果编译并作为Windows应用程序运行,一切正常.但是当转换为作为服务运行时,尝试创建包含TQuickRep组件的表单会引发异常.

这项服务在许多其他盒子上运行良好,但特别是没有这个.以下是一些细节:

  • 使用QuickReport版本4.07
  • Box是Windows Server 2008操作系统.
  • 使用Delphi 2007
  • Printer.Printers.Count返回一个正值.事实上,我可以列出所有的打印机.
  • 我尝试使用本地系统帐户运行该服务并以管理员身份登录.

printing delphi windows-services

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

从 Oracle 中的动态 SQL 获取结果集中的结果

这个问题与我在 StackOverflow 上找到的其他几个问题类似,但这些差异对我来说足够重要,值得提出一个新问题,所以这里是:

我想从Oracle中的动态SQL获取一个结果集,然后将其作为结果集显示在类似SqlDeveloper的工具中,就像我直接执行动态SQL语句一样。这在 SQL Server 中很简单,所以具体来说,下面是 SQL Server 中的一个示例,它在 SQL Server Management Studio 或查询资源管理器中返回结果集:

EXEC sp_executesql N'select * from countries'
Run Code Online (Sandbox Code Playgroud)

或者更恰当地说:

DECLARE @stmt nvarchar(100)
SET @stmt = N'select * from countries'
EXEC sp_executesql @stmt
Run Code Online (Sandbox Code Playgroud)

问题“如何从执行动态 SQL 的 Oracle PL/SQL 匿名块返回结果集/游标?” 解决了问题的前半部分——在游标中执行动态 SQL。问题“如何使Oracle过程返回结果集”提供了类似的答案。网络搜索揭示了同一主题的许多变体,所有这些都只解决了我问题的前半部分。我发现这篇文章解释了如何在 SqlDeveloper 中执行此操作,但这使用了 SqlDeveloper 的一些功能。我实际上使用的是自定义查询工具,因此我需要将解决方案独立于 SQL 代码中。该自定义查询工具同样不具备显示 print (dbms_output.put_line) 语句输出的功能;它只显示结果集。这是使用“立即执行...批量收集”的另一种可能途径,但此示例再次使用 dbms_output.put_line 语句循环呈现结果。此链接试图解决该主题,但该问题也从未得到完全解答。

假设这是可能的,我将添加一个条件:我想在不必定义函数或过程的情况下执行此操作(由于数据库权限有限)。也就是说,我想执行一个包含动态 SQL 的独立 PL/SQL 块,并在 SqlDeveloper 或类似工具中返回结果集。


总结一下:

  • 我想执行任意 SQL 语句(因此是动态 SQL)。
  • 该平台是Oracle。
  • 解决方案必须是没有过程或函数的 PL/SQL 块。
  • 输出必须生成为规范结果集;没有打印语句。 …

oracle resultset dynamic-sql oracle-sqldeveloper

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

当在一个陈述中合并时,"和"和"或"如何工作?

出于某种原因,这个功能使我困惑:

def protocol(port):
    return port == "443" and "https://" or "http://"
Run Code Online (Sandbox Code Playgroud)

有人可以解释幕后发生的事情的顺序,使其按照它的方式工作.

直到我尝试它才明白这一点:

要么A)

def protocol(port):
    if port == "443":
        if bool("https://"):
            return True
    elif bool("http://"):
        return True
    return False
Run Code Online (Sandbox Code Playgroud)

或者B)

def protocol(port):
    if port == "443":
        return True + "https://"
    else:
        return True + "http://"
Run Code Online (Sandbox Code Playgroud)

这是Python中的某种特殊情况,还是我完全误解了语句的工作原理?

python boolean-logic if-statement

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