什么时候应该在会话中保留一个对象(即应用程序范围的属性文件),而不是创建一个单例来保存它?应该何时使用这些方法?
注意:我正在开发集群环境,如果这有任何区别的话.
这对我来说毫无意义.也许有人在这里可以解释为什么会这样.
我有一个NSMutableString,我在我的iPhone应用程序的顶部分配,然后追加到稍后的过程中.它会产生一个SIGABRT,这对我来说并不重要.这是代码:
头文件(简化):
@interface MyAppDelegate : NSObject <UIApplicationDelegate> {
UIWindow *window;
NSMutableString *locationErrorMessage;
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, copy) NSMutableString *locationErrorMessage;
@end
Run Code Online (Sandbox Code Playgroud)
主要的相关部分:
@implementation MyAppDelegate
@synthesize window;
@synthesize locationErrorMessage;
- (void)applicationDidFinishLaunching:(UIApplication *)application {
self.locationErrorMessage = [[NSMutableString alloc] init];
}
- (void)anotherFunction {
[self.locationErrorMessage appendString: @"Blah Blah Blah"];
}
Run Code Online (Sandbox Code Playgroud)
这一切看起来都很简单.我错过了什么?
我正在编写一个Android应用程序,并使用工作线程来处理某些信息.阅读完我的代码后,我现在不确定它是否是线程安全的.
我已经编写了我的代码的简化版本,我省略了Handler用于与主线程进行通信的对象,显然是进程本身.
public class myClass implements Runnable
{
private String myString;
@Override
public void run()
{
myString = "Some Value";
}
}
Run Code Online (Sandbox Code Playgroud)
通过运行类似于此的东西来调用它.
myClass class = new myClass();
Thread thread = new Thread(class);
thread.start()
Run Code Online (Sandbox Code Playgroud)
那么,这个代码是不是线程安全的,因为我myString在run()函数中修改(在主线程中声明)?
在您盯着另一个ConcurrentModificationException问题之前,这不是典型的ConcurrentModificationException问题.
我理解ConcurrentModificationExceptions但我不明白为什么我在下面的代码中得到一个.在下面的'for'中,似乎迭代器继续存在于for循环之外.(在eclipse中使用调试器,我可以看到迭代器在重新启动循环时会保留其jList的modCount值.)
public class ForEachTest {
public static void main(String[] args) {
List<Integer> zList = new LinkedList<Integer>();
List<Integer> jList = new LinkedList<Integer>();
jList.add(1);
while (true) {
for (Integer j : jList) {
zList.add(17);
System.out.println(j);
}
jList = zList;
}
}
}
Run Code Online (Sandbox Code Playgroud)
起初我认为这可能是语法糖的问题,但我使用显式迭代器重写了它并运行了相同的行为.
最后,我能够通过将for分成一段时间来重写它,并进行单独的初始化步骤,所以我不是只想让它重新编写才能使它工作.但我想知道这里显示的问题是什么问题.如果可能的话,我更愿意使用for-each语法.
是否有人与Mono的xbuild一起使用了MSBuild社区任务或MSBuild扩展包?他们俩似乎都具有MSI安装程序,所以我想这是手动将文件传输到Mac的情况(就我而言)?
如果有人这样做,我将不胜感激他/她的经验。
msbuild mono msbuildcommunitytasks xbuild msbuildextensionpack
如何将过滤器映射到URL的根目录?我正在使用Tomcat 7.0.2并将应用程序部署为ROOT.war.欢迎页面是sign_in.xhtml.每当客户端发送对站点根目录的请求(即仅域名),或者客户端请求sign_in.xhtml时,我想运行过滤器.这是我到目前为止:
<filter>
<filter-name>My filter</filter-name>
<filter-class>com.myApp.myFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>My filter</filter-name>
<url-pattern>/sign_in.xhtml</url-pattern>
</filter-mapping>
Run Code Online (Sandbox Code Playgroud)
直接请求sign_in.xhtml,成功调用过滤器,但我不知道如何获取root用户调用过滤器的请求.根据Servlet规范(3.0版)
<url-pattern>/</url-pattern>
Run Code Online (Sandbox Code Playgroud)
映射到默认servlet,空字符串映射到根.以下是规范中的相关部分:
"空字符串("")是一个特殊的URL模式,它完全映射到应用程序的上下文根,即http:// host:port //形式的请求.在这种情况下,路径信息是'/'和servlet路径和上下文路径是空字符串("")."
但是,以下两个url模式都会导致Tomcat抛出异常.
<url-pattern></url-pattern>
<url-pattern>""</url-pattern>
Run Code Online (Sandbox Code Playgroud)
如果有人能够对此有所了解,我将非常感激.谢谢.
安德鲁
我正在使用这种方法.如果sql中存在错误,则仅对asset_group的第一个id进行回滚.其余的ID被忽略.我是以正确的方式做到的吗?
my $sql = "sql batch that update and insert depending on the condition";
$dbh->{RaiseError} = 1;
$dbh->{PrintError} = 0;
$dbh->{AutoCommit} = 0;
my $sth = $dbh->prepare($sql);
my @error = ();
my $num = 0;
foreach my $id (@asset_group) {
next if ($id eq '');
eval {
$sth->bind_param(1, $id);
$sth->bind_param(2, $vars{'other_id'});
$sth->execute();
};
if ($@) {
$dbh->rollback();
push @error, $@
} else {
$dbh->commit();
}
}
Run Code Online (Sandbox Code Playgroud) 我想在我的Android应用程序中使用Button但我想自定义它的外观.但是,我希望按钮的高亮和选定颜色与默认颜色相同(即深色和浅橙色渐变,或主题颜色提供的任何颜色).
无论如何都要获得默认的高亮/选定的drawable并将其用作所选和突出显示状态下按钮的填充?
谢谢!
我试过这个:
SPFolder folder = ...;
folder.Item["Name"] = newName;
folder.Item.Update();
Run Code Online (Sandbox Code Playgroud)
它表现得很神秘.如果我运行它,它会抛出一个异常:
SPException: Cannot complete this action.
Run Code Online (Sandbox Code Playgroud)
但是,如果我在新的Name分配之后和Update()之前在调试器中停止它,并查看folder.Item的属性,然后继续,它每次都有效.这不是时间问题,我尝试在调试器中停止它而不在Locals窗口中查看它,但它在那个时间抛出异常.
这个问题表明类似的解决方案,但使用SystemUpdate(),这有关系吗? 以编程方式更改SPFolder的名称