当试图在C#中做一些相当先进的事情时(比如某种黑客),提出了"头等"的概念.
例如,一个方法是第一类编程构造,因为你可以用它做xyz(xyz不是方法所做的,但是一般的方法给你什么,我不记得xyz现在是什么),但是. NET 1.1委托无法传递给方法,因为它们不是一流的编程结构(我读过这些内容).
什么是一流的编程结构?
谢谢
我正在构建一个包含一些HTML文本的表,所以我使用UIWebView作为自定义表格单元格的子视图.我已经遇到了一个问题 - 当我在表格中向下滚动时,UIWebViews需要更新一次.例如,我将在编号为1,2和3的行中查看单元格.我向下滚动到8,9和10.有一会儿,在单元格#8中可见的UIWebView的内容是来自单元#1的内容,单元#9中的内容是来自单元#2的内容,依此类推.
我了解到问题是UIWebViews只是缓慢地渲染文本.有人建议我尽快将内容预先加载到UIWebView中,而不是等到表收到cellForRowAtIndexPath.所以现在,我有一个Domain Object,它之前只有WebView的文本内容 - 但现在它实际上有一个UIWebView本身的引用.
但是现在UIWebView中的一些内容呈现,当我滚动表格时,UIWebView只显示为灰色框.如果我触摸灰色框,它将实际接收触摸并更新WebView - 例如,如果我触摸链接(我可能会或可能不会,因为该框是灰色的,这将是一个运气),将链接到的页面将被请求并正确显示.
- (id)initWithFrame:(CGRect)frame reuseIdentifier:(NSString *)reuseIdentifier {
if (self = [super initWithFrame:frame reuseIdentifier:reuseIdentifier]) {
// I suppose this isn't necessary since I am just getting it from the
// Domain Object anyway
content = [[UIWebView alloc] initWithFrame:CGRectZero];
content.backgroundColor = [UIColor blackColor];
[self addSubview:content];
[content release];
}
return self;
}
// called by cellForRowAtIndexPath
- (void)setMyDomainObject:(MyDomainObject*)anObject {
UIWebView *contentWebView = anObject.contentWebView;
int contentIndex = [self.subviews indexOfObject:content];
[self insertSubview:contentWebView atIndex:contentIndex];
}
Run Code Online (Sandbox Code Playgroud) 我想知道将消息发送到具有至少1ms准确度的对象需要多长时间.我该怎么做呢?
我想将HTMLpurifier与Zend Framework结合使用.我想用Zend_Loader加载Class及其文件.你会怎么包括它?您是否只使用HTMLPurifier.auto.php或者您是否知道更好的方法?
我正在尝试完成一个涉及使用信号量的学校项目.我已经包含了正确的头文件(加上一个用于pthreads).我已经将编译器指向了正确的库.这是用C编写的.是的,这是一个赋值,但请注意我不是在寻求实现的帮助,而是我似乎无法弄清楚这个该死的编译错误.
这是我的代码的第47到50行,它们是信号量的"简单"声明并初始化它们:
sem_t empty;
sem_init(&empty, 0, 5);
sem_t full;
sem_init(&full, 0, 0);
Run Code Online (Sandbox Code Playgroud)
以下是我在尝试编译第48行时收到的消息.我为第50行获得了相同的设置,但为了简洁起见没有发布:
|48|error: expected declaration specifiers or ‘...’ before ‘&’ token|
|48|error: expected declaration specifiers or ‘...’ before numeric constant|
|48|error: expected declaration specifiers or ‘...’ before numeric constant|
|48|warning: data definition has no type or storage class|
|48|warning: type defaults to ‘int’ in declaration of ‘sem_init’|
Run Code Online (Sandbox Code Playgroud)
我已经在main()函数之外声明了所有这些.我该如何解决这些错误?我很困惑,因为它似乎表明没有sem_t的数据类型,但它是在semaphore.h中定义的,我已经包含了它.我正在使用Ubuntu下的Code :: Blocks编译它,它使用的是gcc.即使从命令行进行编译,也会发生此错误.
在此先感谢您的帮助.
AMF3规范定义了所谓的"参考表"的使用(参见本规范的第2.2节).
我在我在Erlang中开发的AMF3编码器/解码器中实现了这种行为,但对Flash API不是很有经验,我很难找到在将对象序列化为AMF3时如何轻松强制Flash使用这些引用表; 例如,如果我使用ByteArray,它似乎只是重复完整的对象编码
var ba:ByteArray = new ByteArray();
ba.writeObject("some string1");
ba.writeObject("some string1");
# =>
# <<6,25,115,111,109,101,32,115,116,114,105,110,103,49,
# 6,25,115,111,109,101,32,115,116,114,105,110,103,49>>
Run Code Online (Sandbox Code Playgroud)
(这显然是重复).
但是,如果这两个字符串在一个writeObject调用中,它似乎确实使用引用:
ba.writeObject(["some string1", "some string1"]);
# => <<9,5,1,6,25,115,111,109,101,32,115,116,114,105,110,103,49,6,0>>
Run Code Online (Sandbox Code Playgroud)
套接字似乎表现得一样.
那么,我可以在Flash代码中使用引用表吗?(假设我在Flash应用程序和服务器之间可能有非标准协议)
谢谢!
假设我们有一个二进制协议,字段网络有序(大端).
struct msg1
{
int32 a;
int16 b;
uint32 c
}
Run Code Online (Sandbox Code Playgroud)
而不是将网络缓冲区复制到我的msg1,然后使用"networkToHost"函数来读取msg1
我将msg1重新排列/反向
struct msg1
{
uint32 c
int16 b;
int32 a;
}
Run Code Online (Sandbox Code Playgroud)
并简单地从网络缓冲区执行反向复制以创建msg1.在这种情况下,不需要networkToHost功能.这种习惯用法在大端机器上不起作用,但对我来说这不是问题.除此之外,我还有其他任何缺点吗?
谢谢
PS为上面我们强制严格对齐(#pragma pack(1)等)
我认为自己是一个非常有经验的SQL人.但我没有做这两件事:
截断日志.
DBCC sqlperf(logspace)
收益:
Database Name Log Size (MB) Log Space Used (%) Status
ByBox 1964.25 30.0657 0
Run Code Online (Sandbox Code Playgroud)
以下内容不适用于SQL 2008
DUMP TRANSACTION ByBox WITH TRUNCATE_ONLY
Run Code Online (Sandbox Code Playgroud)
运行以下操作也没有任何作用
DBCC SHRINKFILE ('ByBox_1_Log' , 1)
DBCC shrinkdatabase(N'bybox')
Run Code Online (Sandbox Code Playgroud)
我试过备份了.我也试过设置数据库的属性 - '恢复模型'为'FULL'和'SIMPLE'以及上述所有内容的组合.我还尝试将兼容性设置为SQL Server 2005(我使用此设置,因为我想匹配我们的生产服务器)和SQL Server 2008.
无论我尝试什么,日志仍然是1964.25 MB,使用30%,这仍然在增长.
我希望日志能够回到0%附近并将日志文件大小减少到100 MB,这就足够了.我的数据库必须恨我; 它只是忽略了我要求它做的关于日志的一切.
还有一点需要注意 生产数据库有很多复制表,当我使用以下内容在开发框上执行恢复时,我关闭了这些表:
-- Clear out pending replication stuff
exec sp_removedbreplication
go
EXEC sp_repldone @xactid = NULL, @xact_segno = NULL,
@numtrans = 0, @time = 0, @reset = 1
go
Run Code Online (Sandbox Code Playgroud)
试:
SELECT log_reuse_wait, log_reuse_wait_desc …Run Code Online (Sandbox Code Playgroud) 在我的目标c类中,我想对这样的数组进行排序:
NSArray *sorted = [unsortedArray sortUsingFunction: mySort context: NULL];
Run Code Online (Sandbox Code Playgroud)
我的排序功能实现为:
NSInteger mySort(id one, id two, void *ctx) { return 1; }
Run Code Online (Sandbox Code Playgroud)
当我构建程序时,编译器告诉我:
error: void value not ignored as it ought to be
Run Code Online (Sandbox Code Playgroud)
现在我想我知道编译器试图告诉我的内容:
"我不知道"mySort"到底是什么,所以我会假设它返回'void'.哎呀,看起来你正试图将'void'分配给变量,nope不能那样做.再试一次."
好吧,编译先生,我要告诉你什么,所以你知道函数原型是NSInteger mySort(id,id,void*)?我尝试将该行放在类头文件中,在"@interface"之后,几乎遍布整个地方,但我无法使其工作.
在哪里/如何为sort函数声明函数原型?
非常感谢,马克.
如何使用纯C捕获另一个进程的输出?你能提供示例代码吗?
编辑:让我们假设Linux.我会对"非常便携"的代码感兴趣.我想要做的就是执行一个命令,捕获它的输出并以某种方式处理它.
c ×3
iphone ×2
.net ×1
amf ×1
apache-flex ×1
benchmarking ×1
c++ ×1
capture ×1
cocoa-touch ×1
erlang ×1
flash ×1
flex3 ×1
htmlpurifier ×1
objective-c ×1
php ×1
pthreads ×1
sql ×1
sql-server ×1
uitableview ×1
uiwebview ×1