我编写了一个UIViewController的子类,它以编程方式创建一个视图,而不是从NIB文件加载它.
它有一个简单的loadView方法:
- (void)loadView
{
UIScrollView *mainScrollView =
[[UIScrollView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.view = mainScrollView;
[mainScrollView release];
}
Run Code Online (Sandbox Code Playgroud)
...然后我会进行大量的初始化viewDidLoad,如文档所述.一切正常,我可以看到包含自定义视图的滚动视图.
我需要一个UIViewController来拥有视图,因为它是UINavigationBar工作流的一部分.由于我有一个控制器对象,我宁愿它做控制器的东西.
那么问题是我的视图控制器似乎不在响应链中. touchesBegan:withEvent:如果我在根视图或子视图中定义它,则调用它,但如果它在视图控制器本身中则不被调用.
Apple事件处理文档明确提到视图控制器应该在响应者链中.UIViewController文档没有说明除了将根视图分配给self.view属性之外所需的额外步骤,正如我上面所做的那样.UIResponder文档声称UIView应该弄清楚它是否有控制器并将事件传递给它.UIScrollView文档什么都没说.
我还尝试userInteractionEnabled:了所有视图和子视图的各种设置,没有运气.
我错过了什么?
无论如何我可以修改这个代码示例
#include <stdlib.h>
#include <iostream>
class Base {
public:
Base() {
if(!m_initialized) {
static_constructor();
m_initialized = true;
}
}
protected:
virtual void static_constructor() {
std::cout << "Base::static_constructor()\n";
}
private:
static bool m_initialized;
};
bool Base::m_initialized = false;
class Derived : public Base {
void static_constructor() {
std::cout << "Derived::static_constructor()\n";
}
};
int main(int argc, char** argv) {
Derived d;
return(EXIT_SUCCESS);
}
Run Code Online (Sandbox Code Playgroud)
那么Derived::static_constructor()被调用而不是Base的?我想初始化一堆静态变量,最合乎逻辑的地方是在类中的某个地方.
我无法对此做出明确的决定.
我可以通过在我的表上使用数值来获取DBA数据库中列的描述的值信息.
但是我也不想在将来有这样的观点,即在数据库中使用这些数值会给维护带来太多麻烦.
我不是特别喜欢在数据库上为这些枚举列添加字符串,因为它会在数据库上创建大量重复的字符串重复.它可能不是一个主要的性能问题,但我觉得在桌面上有如此多的字符串来表示值是正确的.
你能否从长远的经验中分享你的想法?谢谢
我正在拼命寻找SQL数据库发布向导.我已下载它但似乎需要SQL Server 2005.根据http://blogs.msdn.com/webdevtools/archive/2007/10/15/sql-database-publishing-wizard-is-now-in- visual-studio-orcas.aspx它随Visual Studio 2008一起提供,但我的Visual Studio 2008 Professional没有该菜单项.
任何想法如何让SQL数据库发布向导与SQL Server 2008一起使用.
输出速率如何高于硬盘写入速率?
更新1:我更改了以下内容:
关掉杀毒软件.没变.
插入新的物理磁盘并使用第一个分区进行测试.(初始测试的磁盘位于最后一个分区,与系统分区分开,但在同一物理磁盘上.).结果:存在相同的循环模式,但系统在测试期间不再无响应.写入速度稍高(可能是由于使用第一个分区和/或不再干扰系统分区).初步结论:系统分区存在某种干扰.
安装64位Perl.循环消失,一切都在2秒的时间范围内保持稳定:单核上55%的CPU,写入速度约为65 MB/s.
尝试使用64位Perl的原始驱动器.结果:介于两者之间.循环8秒,CPU 20-50%,35-65 MB /秒(而不是0-100%的深循环,0-120 MB /秒).该系统只是略微没有反应.写入速度为50 MB /秒.这支持干涉理论.
刷新Perl脚本.尚未尝试过.
好的,我已经超越了第一道障碍.我编写了一个Perl脚本,可以生成一个非常大的文本文件(例如20 GB),基本上只是一些:
print NUMBERS_OUTFILE $line;
Run Code Online (Sandbox Code Playgroud)
其中$ line是一个长字符串,末尾带有"\n".
当Perl脚本启动时,写入速率大约为120 MB/s(在脚本,Process Explorer和"性能监视器"中的进程Perl的"IO写入字节数/秒" 之间保持一致 .)和单核上的100%CPU它正在运行.我认为,这个速率高于硬盘的写入速度.
然后经过一段时间(例如20秒和2.7 GB写入),整个系统变得非常无响应,CPU降至0%.这最后持续例如30秒.这两个阶段的平均写入速度与硬盘的写入速度一致.本段中提到的时间和大小因运行而异.到目前为止,已观察到第一阶段的1 GB至4.3 GB范围.这是4.3 GB的运行记录.
对于测试中生成的9.2 GB文本文件,有几个周期:
到底是怎么回事?
完整的Perl脚本和BAT驱动程序脚本(使用pre标签格式化的HTML).如果设置了两个环境变量MBSIZE和OUTFILE,则Perl脚本应该能够在除Windows之外的其他平台上保持不变.
平台:ActiveState的Perl 5.10.0; (最初是32位,后来是64位); 构建1004.Windows XP x64 SP2,没有页面文件,8 GB RAM,AMD四核CPU,500 GB绿色鱼子酱硬盘(写入速度85 MB/s?).
如果我有这个选择:
<select id="days">
<option value="0">Today</option>
<option value="1">Yesterday</option>
<option value="7">Last week</option>
</select>
Run Code Online (Sandbox Code Playgroud)
有人选择了"上周"的第三个选项,我可以使用获得上周的值(即7)$("#days").val(),但是如何获得文本的值,即"上周"?
在Python和GAE中,我想问一下如何在url中获取查询字符串的参数.据我所知,query_string部分返回"?"之后的所有部分.在网址中.所以我要做的是用"&"拆分查询字符串,并使用变量.有没有其他方便的方法来管理查询字符串?你通常怎么做?
str_query = self.request.query_string
m = str_query.split('&')
a = m[0]
b = m[1]
c = m[2]
Run Code Online (Sandbox Code Playgroud)
这样做,如果query_string没有任何值,它会抛出一个错误:
IndexError: list index out of range
Run Code Online (Sandbox Code Playgroud) UIViewController的parentViewController属性是readonly,但我正在嵌套自定义视图控制器并希望使用此属性.
但是,由于它是只读的,我发现没有其他的方法来设置该属性,我quesion是:如何做我设置呢?
显然,UINavigationController可以在-pushViewController中以某种方式设置属性,因此-presentModalViewController也是如此,所以它必须是可能的.
我知道我可以添加自己的UIViewController属性,但我确信parentViewController原则上是正确的属性.
iphone cocoa-touch hierarchy uiviewcontroller parentviewcontroller
我不明白为什么以下代码会生成警告.
interface Generic<T> {
}
interface A {
}
class B {
Generic<A> c;
<T extends A> B(Generic<T> a) {
c = (Generic<A>) a; //warning here
}
}
//Unchecked cast from Generic<T> to Generic<A>
Run Code Online (Sandbox Code Playgroud)
在B类中,我只对使用类型为A的Generic实例感兴趣.这个警告表明我需要将Generic参数存储为T而不是A.
但这意味着我必须声明B泛型,这似乎使事情变得比他们需要的更复杂.
我想知道是否可以在iPhone状态栏中添加一个图标,就像电池和wifi指示器一样.我怎样才能做到这一点?
谢谢.
iphone ×3
objective-c ×2
.net ×1
c# ×1
c++ ×1
cocoa-touch ×1
database ×1
export ×1
generics ×1
hard-drive ×1
hierarchy ×1
java ×1
javascript ×1
jquery ×1
performance ×1
perl ×1
publishing ×1
python ×1
statusbar ×1
syntax ×1
uikit ×1
uiscrollview ×1
wizard ×1