尝试触发(触发)单击事件.它很容易在jQuery中做,但无法弄清楚如何设置事件的坐标并发送它们.
基本上,我需要在特定位置触发一次点击(在trigger()调用之前计算).
任何方式(在jQuery或其他方面)?
谢谢 -
当表示资源的对象包含在共享指针中时,如何处理资源释放期间的错误?
编辑1:
用更具体的术语来说明这个问题:许多C风格的接口都有一个分配资源的功能,一个用来释放它.POSIX系统上的文件描述符是open(2)和close(2),XOpenDisplay和XCloseDisplay是连接到X服务器的例子,sqlite3_open和sqlite3_close是连接到SQLite数据库的例子.
我喜欢将这些接口封装在C++类中,使用Pimpl习惯用法隐藏实现细节,并提供一个返回共享指针的工厂方法,以确保在没有对它的引用时释放资源.
但是,在上面给出的所有示例和许多其他示例中,用于释放资源的函数可能会报告错误.如果析构函数调用此函数,我不能抛出异常,因为通常析构函数不能抛出.
另一方面,如果我提供一个公共方法来释放资源,我现在有一个具有两种可能状态的类:一个资源有效,另一个资源已经释放.这不仅会使类的实现变得复杂,而且还会导致错误使用.这很糟糕,因为界面的目标应该是无法使用错误.
如果对这个问题有任何帮助,我将不胜感激.
问题的原始陈述以及对可能解决方案的想法如下.
编辑2:
现在有一个关于这个问题的赏金.解决方案必须满足以下要求:
- 当且仅当没有对它的引用时才释放资源.
- 可以明确地销毁对资源的引用.如果在释放资源时发生错误,则抛出异常.
- 无法使用已发布的资源.
- 引用计数和释放资源是线程安全的.
解决方案应满足以下要求:
- 它使用boost提供的共享指针,C++技术报告1(TR1)和即将推出的C++标准C++ 0x.
- 它是通用的.资源类只需要实现资源的释放方式.
感谢您的时间和想法.
编辑3:
感谢所有回答我问题的人.
阿尔斯克的回答满足了赏金中所要求的一切,并被接受了.在多线程代码中,此解决方案需要单独的清理线程.
我添加了另一个答案,其中清理期间的任何异常都被实际使用资源的线程抛出,而不需要单独的清理线程.如果你仍然对这个问题感兴趣(这让我很烦恼),请发表评论.
智能指针是安全管理资源的有用工具.此类资源的示例是内存,磁盘文件,数据库连接或网络连接.
// open a connection to the local HTTP port
boost::shared_ptr<Socket> socket = Socket::connect("localhost:80");
Run Code Online (Sandbox Code Playgroud)
在典型的场景中,封装资源的类应该是不可复制的和多态的.支持这一点的一个好方法是提供一个返回共享指针的工厂方法,并声明所有构造函数都是非公共的.现在可以自由地复制和分配共享指针.当没有对它的引用仍然存在时,该对象将被自动销毁,然后析构函数将释放该资源.
/** A TCP/IP connection. */
class Socket
{
public:
static boost::shared_ptr<Socket> connect(const std::string& address);
virtual ~Socket();
protected:
Socket(const std::string& address);
private:
// not implemented
Socket(const Socket&);
Socket& …Run Code Online (Sandbox Code Playgroud) 我正在构建一个在两个iPhone之间发送信息的应用程序.该应用程序运行良好,但我遇到的一个问题是,我无法告诉bonjour是否选择Wi-Fi或蓝牙来建立连接.我想让用户能够选择他们喜欢的.此外,有没有办法以编程方式告诉设备的蓝牙是否开启?
我见过很多开发人员在iOS项目的Prefix.pch中添加了各种便利宏.
您建议添加到iOS Prefix.pch文件中(或不建议)是什么?你的Prefix.pch是什么样的?
在我的src文件夹中有另一个名为data的文件夹,其中包含文件data1.txt和data2.txt.应用程序在初始化时从这些文件加载图形,所以我想在最终的jar中包含这些文件.我使用Ant来生成jar文件.
有没有办法检查是否存在推特用户名?没有通过OAuth或twitter基本身份验证进行身份验证?
我有以下代码:
public class Parent
{
public string MyField { get; set; }
}
public class Child : Parent
{
protected new int MyField { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我试着通过以下方式访问:
static void Main(string[] args)
{
Child child = new Child();
child.MyField = "something";
}
Run Code Online (Sandbox Code Playgroud)
Visual Studio 2008编译时没有注释,但在Mono(2.4.2,Ubuntu)下我收到错误消息
'HideTest.Child.MyField' is inaccessible due to its protection level (CS0122)
Run Code Online (Sandbox Code Playgroud)
一个实现或其他更符合标准吗?
编辑:感谢所有指出糟糕设计的人.不幸的是,它是第三方库,并且显着地改变它是不实际的.
如何使用Java获取计算机的LAN IP地址?我想要连接到路由器和网络其余部分的IP地址.
我尝试过这样的事情:
Socket s = new Socket("www.google.com", 80);
String ip = s.getLocalAddress().getHostAddress();
s.close();
Run Code Online (Sandbox Code Playgroud)
这似乎适用于某些情况,但有时它会返回loopback-address或完全不同的东西.此外,它需要互联网连接.
有没有人有更准确的方法这样做?
编辑:认为这里问题比评论更好..
如果你有很多接口怎么办?例如,一个用于电缆,一个用于wifi,一个用于虚拟盒子等.是否无法真正看到哪一个连接到网络?
今天在我的采访中,采访者问:printf是一个函数,每个函数都返回一些东西; int,void,float等.现在printf返回什么,因为它是一个函数?
如何在Java String中分配此字符串?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Run Code Online (Sandbox Code Playgroud)
谢谢