我想知道从函数返回指向多态对象的指针时,最好的做法是什么,例如在使用工厂时.如果我转让所有权,我应该退货boost::unique_ptr<Interface>吗?如果我不转让所有权(例如,返回对成员的引用),我应该返回什么?是否有一种替代的,非基于增强的方式,也常用?谢谢.
编辑:它应该是C++ 03兼容的,可以轻松升级到0x
编辑2:请注意我明确询问常用方法,最佳实践,而不仅仅是"一种方法".一个暗示将来对代码库进行条件搜索和替换的解决方案看起来不是一个好习惯,是吗?
编辑3:关于auto_ptr的另一点是,它被弃用了,不管它是什么,所以在界面级别宣传它的用法看起来很奇怪.然后,有人不知道会将返回的指针放入STL容器,依此类推.因此,如果您知道另一种常见的解决方案,欢迎您添加答案.
我正在尝试编写PowerShell脚本来构建几个目录中的文件列表.将所有目录添加到主列表后,我想对所有文件执行相同的处理.
这就是我所拥有的:
$items = New-Object Collections.Generic.List[IO.FileInfo]
$loc1 = @(Get-ChildItem -Path "\\server\C$\Program Files (x86)\Data1\" -Recurse)
$loc2 = @(Get-ChildItem -Path "\\server\C$\Web\DataStorage\" -Recurse)
$items.Add($loc1) # This line fails (the next also fails)
$items.Add($loc2)
# Processing code is here
Run Code Online (Sandbox Code Playgroud)
失败并出现此错误:
无法转换参数"0",值为:"System.Object []","Add"键入"System.IO.FileInfo":"无法转换"System.Object []"va lue类型"系统. Object []"键入"System.IO.FileInfo"."
我最感兴趣的是这种情况的正确方法是什么.我意识到我的代码是一种非常简单的C方式 - 如果有更多的PowerShell方法来完成相同的任务,我就是全力以赴.关键是,数量$loc#'s可能会随着时间的推移而变化,因此在生成的代码中添加和删除一两个应该很容易.
我正在使用WCF REST入门套件中提供的非常棒的HttpClient.我有以下方法来对抗HelloTxt API:
public UserValidateResponse Validate()
{
HttpClient client = new HttpClient(baseUrl);
HttpMultipartMimeForm form = new HttpMultipartMimeForm();
form.Add("app_key", this.AppKey);
form.Add("user_key", this.UserKey);
HttpResponseMessage response = client.Post("user.validate", form.CreateHttpContent());
return response.Content.ReadAsXmlSerializable<UserValidateResponse>();
}
Run Code Online (Sandbox Code Playgroud)
我有一个很好的通用GetRequest方法,如下所示:
public T GetRequest<T>(string query)
{
HttpClient client = new HttpClient(baseUrl);
client.DefaultHeaders.UserAgent.AddString(@"http://www.simply-watches.co.uk/");
HttpResponseMessage response = client.Get(query);
response.EnsureStatusIsSuccessful();
T data = default(T);
try
{
data = response.Content.ReadAsXmlSerializable<T>();
return data;
}
catch (Exception ex)
{
Console.Write(String.Format("{0}: {1}", ex.Message, ex.InnerException.Message));
}
return data;
}
Run Code Online (Sandbox Code Playgroud)
其好处是您可以将T作为响应类型传递,如下随机示例所示:
public List<User> GetUsers(int deptid)
{
string query = String.Format("department.getUsers?api_key={0}&dept_id={1}", …Run Code Online (Sandbox Code Playgroud) 我有一个在xcode中创建的基本项目作为"标签栏应用程序",如果BOOL x为真,我希望将应用程序加载切换到第二个标签.
现在我有:(位于viewDidLoad中的FirstViewController.m)
if(x){
[self.tabBarController setSelectedIndex:1];
}
Run Code Online (Sandbox Code Playgroud)
这会导致页面底部的选定选项卡突出显示第二个选项卡,但视图仍然是第一个选项卡的视图.
我如何将视图更改为第二个选项卡的视图?
可能重复:
用于链接字符串中URL的C#代码
我敢肯定这是一个愚蠢的问题,但我无法在任何地方找到合适的答案.我需要一个很好的URL正则表达式C#.它需要查找字符串中的所有URL,以便我可以将每个URL包装在html中以使其可单击.
用于此的最佳表达方式是什么?
一旦我有了表达式,用正确格式化的对应物替换这些URL的最佳方法是什么?
提前致谢!
我有一个弹出对话框,可让您在单击按钮时编写文本并执行操作.我的代码如下
这个函数有效,我通过查看e.originalEvent.explicitOriginalTarget找到新对象.但是现在我注意到如果我按Tab键将调用此函数,但e.originalEvent.explicitOriginalTarget将给我相同的当前对象而不是新对象.因此,如果用户按Tab键离开,我的对话框就不会关闭.我如何找到正确的新dom项目?
$('#Area').focusout(function (e) {
if ($(e.originalEvent.explicitOriginalTarget).closest('#Area').size() == 0)
$('#Area').hide();
});
Run Code Online (Sandbox Code Playgroud) 我正在开发一个iPhone应用程序(如音频处理).我必须对音频做出一些影响.如果它是桌面应用程序,那里有很多选项.我们可以得到很好的例子和完整的项目,如大胆.但我想为iPhone开发.
我有一个带有混响选项的应用程序; (看看下面的链接).只是我看"视频",我没有在我的iPhone设备上测试这个应用程序.
http://www.appstorehq.com/reverb-iphone-89870/app
我的问题是; 如何使用混响功能开发应用程序?那有什么文件吗?如果是,请与我们分享.
注意: 我们可以使用AudioUnit开发具有混响功能的应用程序(我不清楚这一点.).
编辑:我不喜欢使用任何第三方库.
如果有人对此有所了解,请与我们分享.
谢谢.
有没有办法让我在我创建的alertView中获得对按钮框架的引用?我想找到顶部按钮的位置,这样我就可以使用它的框架将图像直接定位在它上面.我在alertview文本的末尾有几个额外的\n,以确保有放置图像的空间,但我需要确定alertview中可用空间的位置.使用顶部按钮作为参考似乎是找到它的可靠方法.
我尝试了下面的命令,它确实返回了按钮数组(ThreePartButton ??),但是当设置每个按钮的大小时,所有这些按钮的x,y原点都是0.
NSArray *buttonArray = [alertView valueForKey:@"_buttons"];
for (UIControl *aControl in buttonArray)
{
CGRect rect = aControl.frame;
NSLog(@"x:%2.2f y:%2.2f w:%2.2f h:%2.2f", rect.origin.x, rect.origin.y, rect.size.width, rect.size.height);
}
Run Code Online (Sandbox Code Playgroud)
任何有关工作解决方案的建议都将不胜感激!
可能重复:
UITableView和键盘滚动问题
我有一个屏幕,其中有几个文本字段(UITextField)用于从用户收集信息,最终占用了大部分屏幕.当用户选择一个字段时,软键盘会出现(如预期的那样),但它会掩盖屏幕下方显示的字段.为了到达那些字段,用户必须关闭键盘并选择它们,并且在这样做时,该字段再次被掩盖并且用户无法看到他们正在键入的内容.
我尝试将文本字段包装成a UIScrollView,希望当键盘占用屏幕上的空间时,我可以将屏幕的uppper部分向下滚动到其他文本字段,但这不起作用.
我希望得到这种滚动行为.有谁知道怎么做?
-TIA
我一定做错了,但我无法弄明白.当我将秒作为localtime()的参数时,我得到秒和16小时.
my $startTime = time;
(process)
my $endTime = time;
my $diffTime = ( $endTime - $startTime );
($sec,$min,$hour) = localtime( $diffTime );
print STDERR "diffTime = $diffTime\n";
print STDERR "hour = $hour\n";
print STDERR "min= $min\n";
print STDERR "sec = $sec\n";
print( sprintf( "Elapsed time : %02d:%02d:%02d\n", $hour, $min, $sec ) );
Run Code Online (Sandbox Code Playgroud)
...始终打印:
diffTime = 4
hour = 16
min= 0
sec = 4
Elapsed time : 16:00:04
Run Code Online (Sandbox Code Playgroud)
好的.弄清楚如何添加评论 - NoScript设置太紧.
谢谢...
我似乎无法在这个帖子中添加评论,所以我要感谢大家.
不使用gmtime是问题所在.它可能不是最有效的解决方案,但它适用于我需要的东西,这只是一个简单的信息,用户可以评估他/她可能等待例程完成的时间并决定输入的大小他/她很熟悉的数据集.
iphone ×3
c# ×2
arrays ×1
asp.net-mvc ×1
audio ×1
c++ ×1
cocoa-touch ×1
core-audio ×1
elapsed ×1
events ×1
httpclient ×1
ios ×1
ios4 ×1
javascript ×1
jquery ×1
localtime ×1
lost-focus ×1
objective-c ×1
oop ×1
ownership ×1
perl ×1
powershell ×1
regex ×1
rest ×1
time ×1
uialertview ×1
wcf ×1