我正在研究Cocoa Touch应用程序,并试图通过确定触摸视图层的哪个子层来处理触摸.我的控制器代码看起来像这样:
CALayer *hitLayer = [self.view.layer hitTest:point];
Run Code Online (Sandbox Code Playgroud)
这不起作用.如果我点击子层的底部,而不是顶部,它会起作用.经过一个小时的拉毛和谷歌搜索后,我终于发现,如果使用表示层进行命中测试而不是图层本身,它会起作用:
CALayer *hitLayer = [self.view.layer.presentationLayer hitTest:point];
Run Code Online (Sandbox Code Playgroud)
所以,我已经解决了我的问题,但我的问题是:为什么?
我已经阅读了核心动画指南,我知道表示树和渲染树可以与对象模型树不同.但我不明白为什么表示树(显然)会有不同的命中测试行为.表示树和对象模型不会具有相同的帧,边界等吗?
我有以下java类:
class Outer
{
private Integer a;
private Long b;
class Inner
{
public void foo()
{
System.out.println("a and b are " + a + " " + b);
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我在Outer和Outer $ Inner上运行javap时,我得到以下内容:
C:\test>javap Outer
Compiled from "Outer.java"
class Outer extends java.lang.Object{
Outer();
static java.lang.Integer access$000(Outer);
static java.lang.Long access$100(Outer);
}
C:\test>javap Outer$Inner
Compiled from "Outer.java"
class Outer$Inner extends java.lang.Object{
final Outer this$0;
Outer$Inner(Outer);
public void foo();
}
Run Code Online (Sandbox Code Playgroud)
我有两个问题:
1)为什么java编译器生成静态方法,在外层使用'Outer'参数来访问其私有变量?为什么不是内部类可以通过它的这个$ 0成员轻松调用的实例方法?
2)为什么内部班级的0美元成为最终?如果不是最终会发生什么?
感谢致敬.
我无法理解哪些元素被称为第一层,第二层和第三层以及它们所在的位置.它们可以驻留在同一台机器或不同的机器上.哪一层驻留在哪台机器上?我们如何将特定应用程序标识为2层应用程序或3层应用程序.请举例说明
我正在学习Nhibernate,有些东西我不太确定.我希望你能帮我检查一下我的代码.当您看到以下代码时,我没有将其称为" SAVE ",它仍然会更新数据库的值.可能存在我想要更改对象值并且不想将它们保存回数据库的情况.我该怎么做?
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult UpdateShoppingCart(FormCollection collection)
{
int customerID = int.Parse(collection["CustomerID"]);
foreach (var item in _shoppingCartItemReopository.GetByCustomerID(customerID))
{
item.DateUpdated = DateTime.Now;
// update item one by one
//_shoppingCartItemReopository.Save(item);
}
return RedirectToAction("GetUserShoppingCart", new { id = customerID });
}
Run Code Online (Sandbox Code Playgroud)
在我的Gloabal.asax.cs文件中:
protected void Application_BeginRequest(object sender, EventArgs e)
{
ManagedWebSessionContext.Bind(HttpContext.Current, SessionManager.SessionFactory.OpenSession());
}
protected void Application_EndRequest(object sender, EventArgs e)
{
ISession session = ManagedWebSessionContext.Unbind(HttpContext.Current, SessionManager.SessionFactory);
if (session != null)
{
try
{
if (session.Transaction != null && session.Transaction.IsActive)
{
session.Transaction.Rollback();
}
else
{ …Run Code Online (Sandbox Code Playgroud) 我必须在系统事件(服务窗口,警报等)上发送计划的支持通知电子邮件.我看到我从供应商处收到的大多数此类电子邮件都是纯文本格式.
我想我是否应该坚持纯文本格式(伴随限制)或提供基于HTML的更好的可视化?
我知道不同的电子邮件客户端的HTML呈现能力有限,但我认为没有复杂的HTML图像可以.
最近我在代码中遇到了以下构造:
typedef sometype sometype;
Run Code Online (Sandbox Code Playgroud)
请注意"sometype"代表完全相同的类型,没有任何添加,如"struct"等.
我想知道它有什么用处?
UPD:这仅适用于用户定义的类型.
UPD2:实际代码在模板上下文中,如下所示:
template <class T>
struct E
{
typedef T T;
...
}
Run Code Online (Sandbox Code Playgroud) 看下面的代码:
class A
{
public string DoSomething(string str)
{
return "A.DoSomething: " + str;
}
}
class B : A
{
}
static class BExtensions
{
public static string DoSomething(this B b, string str)
{
return "BExtensions.DoSomething: " + str;
}
}
class Program
{
static void Main(string[] args)
{
var a = new A();
var b = new B();
Console.WriteLine(a.DoSomething("test"));
Console.WriteLine(b.DoSomething("test"));
Console.ReadKey();
}
}
Run Code Online (Sandbox Code Playgroud)
代码的输出是:
A.DoSomething:测试
A.DoSomething:测试
编译时,它不会发出警告.
我的问题是:为什么在代码编译时没有警告,以及在DoSomething调用方法时究竟发生了什么?
如果我的变量是list和cons-cell的组合,如果在lisp中使用nth函数,例如:
当我说它返回2
时
(setq aa '(1 2) )
(nconc aa (+ 1 2))
返回我但当我使用它时抛出错误(1 2 . 3)(nth 1 aa)(nth 2 aa )
我正在尝试在rails应用程序中提供动态生成的文件,因此当用户单击特定链接时,将生成文件并使用send_data将其发送到客户端.
该文件不打算重复使用:是一个简短的文本文件,重新生成应该非常便宜,因为它不会被大量删除; 但如果有必要或方便我可以将它存储在数据库中,所以只生成一次.
首先,我想在内存中生成文件,并将其发送到控制器中.我试图存档这样的东西:
def DownloadsController < ApplicationController
def project_file
project = Project.find(params[:id])
send_data project.generate_really_simply_text_file_report
end
end
Run Code Online (Sandbox Code Playgroud)
但我不知道如何在内存中生成流,因此在文件系统中不会创建任何文件.
另一种选择是在rails app tmp目录中生成带有随机名称的文件并从中发送,但是文件将保留在那里,这是我不希望发生的事情.
编辑:如果我没有弄错,send_file会阻止请求直到文件被发送,所以它可以工作......
还有其他建议或意见吗?
提前致谢
c# ×2
architecture ×1
c++ ×1
calayer ×1
class ×1
cocoa ×1
cocoa-touch ×1
decompiling ×1
dynamic-data ×1
elisp ×1
email ×1
email-client ×1
file ×1
html-email ×1
java ×1
lisp ×1
nhibernate ×1
silverlight ×1
typedef ×1