(对不起奇怪的标题......)
我想使用groovy构建器系统来创建一个xml.
我的问题是,我希望有一些信封,用户不必关心.
一个例子:
def builder = new groovy.xml.MarkupBuilder()
builder.foo() {
bar('hello')
}
Run Code Online (Sandbox Code Playgroud)
这应该创造让我们说
<Something id:'123'>
<AnyInfo>
<foo>
<bar>hello</bar>
</foo>
</AnyInfo>
</Something>
Run Code Online (Sandbox Code Playgroud)
这样在后台有一个xml结构,用户可以在预定义的节点上添加他的xml结构(例如'AnyInfo')
构建器的外观如何,我可以在信封中间的某处添加带有markupbuilder(或任何其他构建器)的节点?
我希望这在某种程度上是可以理解的?!
谢谢马蒂
我正在使用UITableView来显示使用Interface Builder创建的自定义单元格.表格滚动不是很平滑(它"断断续续")让我相信细胞没有被重复使用.这段代码有问题吗?
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"TwitterCell";
TwitterCell *cell = (TwitterCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil){
//new cell
NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"TwitterCell"
owner:nil options:nil];
for(id currentObject in topLevelObjects)
{
if([currentObject isKindOfClass:[TwitterCell class]])
{
cell = (TwitterCell *)currentObject;
break;
}
}
}
if([self.tweets count] > 0) {
cell.lblUser.text = [[self.tweets objectAtIndex:[indexPath row]] username];
cell.lblTime.text = [[self.tweets objectAtIndex:[indexPath row]] time];
[cell.txtText setText:[[self.tweets objectAtIndex:[indexPath row]] text]];
[[cell imgImage] setImage:[[self.tweets objectAtIndex:[indexPath row]] image]];
} …Run Code Online (Sandbox Code Playgroud) 我在LG Eve手机上测试我的应用程序.我有一个应用程序试图从Web下载一些东西,当它抛出一个异常时,它应该启动一个alertdialog说有一个错误.当手机没有wifi信号时,程序会在builder.create()崩溃(见下面的代码).但是,当有wifi信号,并且异常被其他东西抛出时(例如,url中的拼写错误),对话框将启动它应该的方式.任何线索,为什么这可能是?
onCreateDialog的代码:
@Override
protected Dialog onCreateDialog(int id){
Dialog d = null;
switch (id){
case DIALOG_DATA_ERROR_ID:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage(getResources().getString(R.string.error_data));
builder.setCancelable(false);
builder.setNeutralButton("OK", new DialogInterface.OnClickListener(){
public void onClick(DialogInterface d, int id){
d.cancel();
}
});
d = builder.create();
break;
}
return d;
}
Run Code Online (Sandbox Code Playgroud)
调用showDialog的AsyncTask代码:
private static class DownloadJSONTask extends AsyncTask<String, Void, String>{
private ProgressDialog dialog;
private Activity parent;
private JSONParserInterface jsonParser;
public DownloadJSONTask(Activity parent, JSONParserInterface jsonParser){
this.parent = parent;
this.jsonParser = jsonParser;
}
protected void onPreExecute(){
dialog = ProgressDialog.show(parent, "Loading", …Run Code Online (Sandbox Code Playgroud) 我有一个iOS项目,在一个UIView中使用了一堆图像
我在Interface Builder中创建了视图,将其放入所有相应的子视图(UIImageViews,UIButton等)
我想在我的项目资源中使用IB中的图像,但IB似乎只知道明确添加的图像.如果我将整个文件夹添加到XCode中的资源,IB不知道它们,
但是,如果我自己拖动文件,IB会找到它们.
问题是,我的所有图像都很好地排列在文件夹中,我不想将每个新图像拖动到XCode中.XCode甚至可以选择创建文件夹引用,自动加载这些文件夹中的任何内容.
如何让IB使用这种方式添加图像?
telerik网格使用lambda语法在绑定到列时增强构建器模式.
.Columns(cols =>
{
cols.Bound(e => e.Tag);
cols.Bound(e => e.Name);
});
Run Code Online (Sandbox Code Playgroud)
我想在我的代码中做一个类似的功能.我已经有了Bound()函数的语法.但是Columns()函数的语法是什么样的呢?
这是我想要完成的一个更好的例子:
class SubList
{
private List<string> _items;
public AddItem(string item)
{
_items.Add(item);
}
}
class MyCollections
{
private Dictionary<string, SubList> _subs = new Dictionary<string,SublList>();
public SubList AddList(string name)
{
var newSub = new SubList();
_subs[name] = newSub;
return newSub;
}
}
class Other
{
public void DoStuff()
{
var collections = new MyCollections();
//if add item throws error, I don't know which one it is as.
//it is …Run Code Online (Sandbox Code Playgroud) 我有两个笔尖:Parent.xib和Child.xib.
我已将Parent nib包含在Parent nib中以简化绑定.我在loadView中以编程方式设置子视图.问题是,awakeFromNib在Child的控制器中被调用了两次.
我想我明白为什么会这样.当Parent完成加载时,它会向其对象发送一个awakeFromNib,并且由于Child是其nib的文件所有者,因此它也会调用awakeFromNib.
我明白了吗?我最初的印象是每个实例只能调用一次awakeFromNib.我不应该在笔尖中嵌入笔尖吗?
我是Laravel的新手.因此,如果我可以使用Schema构建器生成表,然后使用查询来查询数据DB::table('user')->find(1),那么Eloquent在整个场景中的位置是什么?它有什么用途?
有没有办法从C#创建和构建.exe?(编者注:基本上是一个可以创建和编译其他.NET应用程序的.NET应用程序 - 请参阅接受的答案)
我不是在谈论获取我的项目的.exe(这是我在谷歌上可以找到的唯一的exe版本),我在谈论从我的程序中生成.exe文件.
我如何从C#创建一个可运行的.exe文件?我不知道如何和谷歌我只找到关于在哪里找到项目的.exe的问题,而我希望项目建立.exe的本身.
如果我有一个需要多个(4+ 个参数)的不可变对象的构造函数,那么使用具有所有必需参数的单个构造函数是否是正确的方法?
我觉得这成为了 Builder 模式的候选者,但我也想避开它,因为参数是必需的,而且当你开始挑选时,Builder 似乎更合适。
我脑海中的例子是一个模型对象,一旦创建就不会改变。
我正在阅读这篇关于 Scala 设计模式的文章,他们提出了 Builder 模式与 Java 相关的论点,因为它允许使用以下代码:
CarBuilder carBuilder = new CarBuilder()
carBuilder.setSeats(2)
carBuilder.setSportsCar(true)
carBuilder.setTripComputer(true)
carBuilder.setGPS(false)
Car car = carBuilder.build()
Run Code Online (Sandbox Code Playgroud)
与更容易混淆的形式:
Car car = new Car(2, true, true, false)
Run Code Online (Sandbox Code Playgroud)
他们后来表示:
在像 Scala 这样允许你在传入参数时命名参数的语言中,构建器模式大多已经过时......
这是否与 Python 类似,因为您可以在任何调用中命名关键字参数,或者这种设计模式是否有一些合理的应用?