问题列表 - 第14649页

什么时候使用工厂模式而不是重载的构造函数来实例化对象更有意义?

在Karl Seguin的编程基础中,有一小部分关于使用工厂模式.他通过声明"你可以使用构造函数重载完成相同的功能"来关闭段落,但是没有说明何时或为什么?

那么,何时使用工厂模式而不是重载的构造函数来实例化对象更有意义呢?

constructor design-patterns factory overloading instantiation

8
推荐指数
1
解决办法
1514
查看次数

UIButton.layer.cornerRadius不存在?

我正在实现一个具有最小功能的自定义UIButton..h文件:

#import <Foundation/Foundation.h>
@interface CustomButton : UIButton {
}
@end
Run Code Online (Sandbox Code Playgroud)

我在.m文件中的第(A)行遇到编译错误:

- (id)initWithCoder:(NSCoder *)coder {
    if(self = [super initWithCoder:coder]) {

        CALayer *layer = [self layer];
        NSLog(@"layer=%@",layer);
        NSLog(@"delegate=%@",[layer delegate]);

#ifdef __IPHONE_3_0
        layer.cornerRadius = 4.0f; // (A) error: request for member 'cornerRadius' in something not a structure or union
#endif
    }
    return self;
}
Run Code Online (Sandbox Code Playgroud)

如果我注释掉(A)行,我得到以下输出:

2009-10-08 17:35:06.681 MyApp[2596:4e07] layer=<CALayer: 0x3cdf520>
2009-10-08 17:35:06.683 MyApp[2596:4e07] delegate=<CustomButton: 0x3cdaff0; baseClass = UIButton; frame = (9 212; 255 55); opaque = NO; autoresize = RM+BM; layer = …
Run Code Online (Sandbox Code Playgroud)

iphone cocoa properties objective-c uibutton

16
推荐指数
1
解决办法
1万
查看次数

对存储在EAX中的地址进行异或

你如何异化存储在EAX中的值?

问题出在这一行:

xor eax, key
Run Code Online (Sandbox Code Playgroud)

EAX包含我想要XOR的值的地址.我怎么能做到这一点?我虽然会有以下几点:

xor [eax], key
Run Code Online (Sandbox Code Playgroud)

但这不起作用(语法错误)

 decrypt proc startAddress:DWORD , sizeOfSegment:DWORD , key:DWORD


  xor ecx, ecx    ; clear the ecx register for the counter
  mov eax, startAddress  ; copy the start address to eax
  .while ecx < sizeOfSegment  ; loop through the code
  xor eax, key    ; XOR decrypt the word
  inc eax
  inc ecx
  .endw

   ret

  decrypt endp
Run Code Online (Sandbox Code Playgroud)

x86 assembly masm xor

1
推荐指数
1
解决办法
1569
查看次数

Google Analytics的替代方案有哪些?

我需要在我的网络应用程序中跟踪唯一访客数量.我真的很想使用谷歌分析,但由于谷歌强加的负载限制,我将无法使用它们.我期待每天超过10,000个请求.这是Google网站分析API强加的限制.是否有另一家公司具有与付费或免费的谷歌分析相同的功能?

seo user-tracking web-analytics

7
推荐指数
2
解决办法
2250
查看次数

Django SELECT语句,Order by

假设我有2个型号.

第二个模型与第一个模型具有一对一的关系.

我想从第一个模型中选择信息,但是从第二个模型中选择ORDER BY.我怎样才能做到这一点?

class Content(models.Model):
    link =  models.TextField(blank=True)
    title =  models.TextField(blank=True)
    is_channel =  models.BooleanField(default=0, db_index=True)

class Score(models.Model):
    content = models.OneToOneField(Content, primary_key=True)
    counter =  models.IntegerField(default=0)
Run Code Online (Sandbox Code Playgroud)

python django

4
推荐指数
1
解决办法
322
查看次数

你能从c ++运行C#代码吗?

你能从c ++运行C#代码吗?如何?

.net c# c++ clr

2
推荐指数
1
解决办法
1843
查看次数

如何使用DataSnap 2010在进程服务器方法中使用

我定义了一个服务器方法:

TServerMethod = class(TPersistent)
public
  function EchoString(Value: string): string;
end;
Run Code Online (Sandbox Code Playgroud)

方法EchoString返回一个等效的Value字符串.

然后我使用TDSTCPServerTransport与TDSServer和TDSServerClass包装服务器方法.

在客户端,我创建一个DataSnap TSQLConnection并生成一个TServerMethodProxy客户端类:

function TServerMethodClient.EchoString(Value: string): string;
begin
  if FEchoStringCommand = nil then
  begin
    FEchoStringCommand := FDBXConnection.CreateCommand;
    FEchoStringCommand.CommandType := TDBXCommandTypes.DSServerMethod;
    FEchoStringCommand.Text := 'TServerMethod.EchoString';
    FEchoStringCommand.Prepare;
  end;
  FEchoStringCommand.Parameters[0].Value.SetWideString(Value);
  FEchoStringCommand.ExecuteUpdate;
  Result := FEchoStringCommand.Parameters[1].Value.GetWideString;
end;
Run Code Online (Sandbox Code Playgroud)

我能够在客户端应用程序中通过TCP连接使用EchoString方法:

var o: TServerMethodClient;
begin
  o := TSeverMethodClient.Create(SQLConnection1.DBXConnection);
  try
    ShowMessage(o.EchoString('Hello'));
  finally
    o.Free;
  end;
end;
Run Code Online (Sandbox Code Playgroud)

上述场景使用TCP/IP作为通信协议.

但是,我希望将我的ServerMethod与我的客户端一起部署为"In Process"模型.如何在不更改客户端和服务器方法代码的情况下实现这一目标?

我应该将哪个参数传递给TServerMethodClient.Create构造函数以建立进程内连接?

o := TSeverMethodClient.Create(SQLConnection1.DBXConnection);
Run Code Online (Sandbox Code Playgroud)

在旧的DataSnap日,我们可以使用TLocalConnection享受In Process访问,而无需更改客户端和服务器代码.

delphi dbexpress datasnap

4
推荐指数
1
解决办法
5370
查看次数

英国国家网格Shapefile - 转换为WGS84 Lat/Lon

我有一套ESRI shapefile,据我所知,它是用英国国家网格坐标系编写的.我需要将这些文件转换为WGS84 lat/lons,以便继续转换为KML文件.我这样做有困难如下:

如果我打开MapInfo Professional中的每个原始文件,告诉我我的文件有一个英国国家网格的投影,那么我在文件中看不到任何地理对象; 地图窗口完全为空.

如果我使用MapInfo Professional的Universal Translator将文件转换为WGS84 MapInfo TAB文件,那么,与之前一样,转换后的文件将不会显示任何地理对象,MapInfo窗口为空.

我可以验证这些文件的坐标系吗?我在这里错过了什么吗?我是否应该能够以我期望的方式转换shapefile并使用MapInfo Professional查看它们?另一个工具会为我做得更好吗?

谢谢.

更多信息:

我的shapefile有一些似乎没有正确转换为lat/lon的坐标,我现在想知道坐标是不是英国国家网格.我看到坐标如383702523,399081141,看起来大约是纬度/经度53.488182,-2.247153.你知道我的输入文件是什么投影系统吗?

mapping wgs84 coordinate-systems

3
推荐指数
1
解决办法
8983
查看次数

在C中计算64x64 int产品的高64位

我希望我的C函数能够有效地计算两个64位有符号整数的乘积的高64位.我知道如何在x86-64程序集中执行此操作,使用imulq并将结果从%rdx中拉出.但是我完全不知道如何在C语言中编写它,更不用说哄骗编译器有效地执行它了.

有没有人有任何建议用C写这个?这是性能敏感的,因此"手动方法"(如俄罗斯农民或bignum图书馆)已经出局.

我写的这个笨拙的内联汇编函数很有用,大致是我追求的代码:

static long mull_hi(long inp1, long inp2) {
    long output = -1;
    __asm__("movq %[inp1], %%rax;"
            "imulq %[inp2];"
            "movq %%rdx, %[output];"
            : [output] "=r" (output)
            : [inp1] "r" (inp1), [inp2] "r" (inp2)
            :"%rax", "%rdx");
    return output;
}
Run Code Online (Sandbox Code Playgroud)

c math 64-bit

14
推荐指数
3
解决办法
2595
查看次数

如何从c ++运行c ++代码?

如果我在c ++程序中有一些c ++代码作为字符串数量(数据),我可以执行该字符串的内容吗?

在C#中使用CodeDOM或在perl,python等中使用eval函数.

c++ reflection

1
推荐指数
2
解决办法
786
查看次数