我在Delphi 2009中有一个自定义的TObjectList后代,我想稍微使用它的枚举器并为MoveNext方法添加一些过滤功能,以使其跳过某些对象.MoveNext是由DoMoveNext调用的,这是一个虚方法,所以这不应该难以覆盖......除了一件事.TObjectList的TEnumerator不是它自己的类; 它在TObjectList声明中声明为嵌套类型.
有没有简单的方法来覆盖我的后代类中的TEnumerator.DoMoveNext,还是我必须重新实现整个TEnumerator?这不是一个很大的课程,但如果可以的话,我宁愿将冗余保持在最低限度......
我有一个大文件,我正在打开一个FileInputStream.此文件包含一些文件,每个文件都有一个从开头和大小的偏移量.此外,我有一个解析器,应该评估这样一个包含的文件.
File file = ...; // the big file
long offset = 1734; // a contained file's offset
long size = 256; // a contained file's size
FileInputStream fis = new FileInputStream(file );
fis.skip(offset);
parse(fis, size);
public void parse(InputStream is, long size) {
// parse stream data and insure we don't read more than size bytes
is.close();
}
Run Code Online (Sandbox Code Playgroud)
我觉得这不是好习惯.有没有更好的方法来做到这一点,也许使用缓冲?
此外,我觉得skip()方法会大大减慢阅读过程.
一般来说,我想了解当我制作新的iPhone应用程序时使用哪些模板.任何人都可以提供一些指导方针,提示,经验法则吗?
另外,我应该为此多少苦恼?如果我从错误的一个开始,我可以手动添加缺失的部分,是否很难?
这里有参考我正在看到的选择:
我正在学习Rails,到目前为止一切顺利.我目前最大的问题是:如何手动将行插入数据库?我已经有了用于创建DataTypeOne行的脚手架,但是我希望在提交DataTypeOne的表单时创建一行DataTypeTwo(并让它引用DataTypeOne的id ...但我想我可以使用它出我自己).
提前致谢.
我有一个文章表和一个类别表。我想为每个类别获取7篇文章。目前,我有这个功能,但是在大型表上速度很慢,所以这不是一个真正的解决方案:
SELECT id,
title,
categories_id,
body,
DATE_FORMAT(pubdate, "%d/%m/%y %H:%i") as pubdate
FROM articles AS t
WHERE (
SELECT COUNT(*)
FROM articles
WHERE t.categories_id = categories_id
AND id< t.id AND publish = 1
AND expires > '2008-12-14 18:38:02'
AND pubdate <= '2008-12-14 18:38:02'
) < 7
ORDER BY categories_id DESC
Run Code Online (Sandbox Code Playgroud)
使用explain,它向我展示了它正在做一个ALL&REF联接类型。选择类型为PRIMARY和DEPENDENT子查询。
有更好的解决方案吗?
我是10年+,C++ linux/windows开发人员,我被要求估计将Windows应用程序移植到OS X的工作量.
我以前没有在OS X上开发过,所以我不知道会发生什么.
它是一个C++/Qt应用程序,所以我想问:什么是事实上的工具,如编辑器,IDE,编译器,制作工具等?哪些工具是商业的,需要购买?
我需要多长时间才能适应环境并提高工作效率?
提前致谢,
保罗
我大量使用Cygwin(使用PuTTY shell).但是,cl.exe
在Cygwin Bash shell中调用(即Visual C++编译器工具链)非常棘手.vcvars*.bat
在Bash shell中运行显然不起作用.我试图将VC++的环境变量迁移到Cygwin,但这并不容易.
如何在Cygwin的Bash shell中运行VC++编译器?
我有一个NSView子类,它具有我想要绑定的属性.我在子类中实现了以下内容:
myView.h:
@property (readwrite, retain) NSArray *representedObjects;
Run Code Online (Sandbox Code Playgroud)
myView.m:
@synthesize representedObjects;
+(void)initialize
{
[self exposeBinding: @"representedObjects"];
}
-(void)bind:(NSString *)binding toObject:(id)observableController withKeyPath:(NSString *)keyPath options:(NSDictionary *)options
{
if ([binding isEqualToString:@"representedObjects"]) {
[observableController addObserver: self forKeyPath:@"arrangedObjects" options:NSKeyValueChangeNewKey context:nil];
} else {
[super bind: binding toObject:observableController withKeyPath:keyPath options: options];
}
}
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
if ([keyPath isEqualToString:@"arrangedObjects"]) {
[self setRepresentedObjects: [object arrangedObjects]];
}
}
Run Code Online (Sandbox Code Playgroud)
然后我创建了对arrayController的绑定-[AppController awakeFromNib]
:
[myView bind:@"representedObjects" toObject:arrayController withKeyPath:@"arrangedObjects" options: nil];
Run Code Online (Sandbox Code Playgroud)
这是实现绑定的正确方法吗?它涉及很多锅炉板代码,这让我觉得我做错了.
我认为NSObject会自动实现我手动完成的工作,-bind:toObject:withKeyPath:options:
但事实并非如此.如果我注释掉我-bind:toObject:withKeyPath:options: …
如何根据某个程序条件将a绑定std::ostream
到一个std::cout
或一个std::ofstream
对象?虽然这有多种原因无效,但我想实现在语义上等同于以下内容的东西:
std::ostream out = condition ? &std::cout : std::ofstream(filename);
Run Code Online (Sandbox Code Playgroud)
我见过一些不例外的示例,例如来自http://www2.roguewave.com/support/docs/sourcepro/edition9/html/stdlibug/34-2.html的示例:
int main(int argc, char *argv[])
{
std::ostream* fp; //1
if (argc > 1)
fp = new std::ofstream(argv[1]); //2
else
fp = &std::cout //3
*fp << "Hello world!" << std::endl; //4
if (fp!=&std::cout)
delete fp;
}
Run Code Online (Sandbox Code Playgroud)
有谁知道一个更好的,异常安全的解决方案?
c++ ×2
iphone ×2
activerecord ×1
backlight ×1
cocoa ×1
cygwin ×1
delphi ×1
delphi-2009 ×1
inputstream ×1
iostream ×1
java ×1
macos ×1
mysql ×1
nested-class ×1
objective-c ×1
optimization ×1
project ×1
qt ×1
ruby ×1
sql ×1
visual-c++ ×1
xcode ×1