问题列表 - 第10389页

不好的做法?非正式使用c#的using语句

C#具有该using语句,特别是对于IDisposable对象.据推测,using语句中指定的任何对象都将拥有某种应该确定性释放的资源.

然而,在我看来,编程中有许多设计具有单一,明确的开始和结束,但缺乏内在的语言支持.该using构造提供了使用代码编辑器的内置特征的机会,至少清楚且自然地突出了这种设计或操作的范围.

我想到的是经常以a BeginXXX()EndXXX()方法开始的那种操作,尽管有很多不同的风格,例如涉及"开始"和"连接"的异步代码执行.

拿这个天真的例子吧.

webDataOperation.Start();
GetContentFromHardDrive();
webDataOperation.Join();
// Perform operation that requires data from both sources
Run Code Online (Sandbox Code Playgroud)

相反,如果Start方法返回了一个IDisposable.Dispose方法执行连接操作的对象,该怎么办?

using(webDataOperation.Start()) {
    GetContentFromHardDrive();
}
// Perform operation that requires data from both sources
Run Code Online (Sandbox Code Playgroud)

或者,更好的是,我特别想到的是:我有一个对象,它具有高度专业化的图形blitting,并且有一个Begin()End()方法(一个设计也出现在DirectX和XNA中).代替...

using(blitter.BlitOperation()) {
    // Do work
}
// Use result
Run Code Online (Sandbox Code Playgroud)

它似乎更自然,更易读,但它是不可取的,因为它使用IDisposable界面和using声明用于非预期的目的?换句话说,这是否与以非直观的方式运算符操作符相同

c# using-statement

19
推荐指数
4
解决办法
1992
查看次数

为什么找不到静态库头?

我使用了Clint Harris的教程来设置项目之间的代码共享,一切都在我的计算机上正常工作.但是在我的同事的机器上,似乎编译器在构建时没有从静态库项目中找到头文件.

我的同事通过克隆git存储库来获得我的项目.我们经历了所有相关的构建标志和XCode设置n次,但项目只是拒绝在他的机器上编译.

这就是我要求我的同事做的事情,主要是从教程中复制和粘贴:

  1. 确保项目目录的完整路径中没有空格.
  2. 在projects目录中,创建另一个名为"build_output"的文件夹.
  3. 在XCode中,在"XCode>首选项"下,选择"构建"选项卡并将"将构建项目放置"到"自定义位置",并指定您创建的公共构建目录的路径.
  4. 将"放置中间构建文件"设置为"使用构建产品".
  5. 选择"源树"选项卡,然后通过单击"+"按钮并填写列来创建新的源树变量.在"设置名称"和"显示名称"中,输入[创建静态库的共享项目的名称].在路径中,您将完整路径放在框架文件夹中.

按照这些步骤,使用静态库的项目应该在他的机器上编译与我的相同.但事实并非如此.基本上,他得到的错误是:

error: TheFrameworkHeader.h: No such file or directory
Run Code Online (Sandbox Code Playgroud)

然后是由缺少的标题引起的一串其他错误.

有什么策略可以解决这个问题吗?或者任何有类似经历并且可以分享一些来之不易的知识的人?我总结的说明中是否有任何遗漏?编译静态库时,是否需要在"复制标头"构建阶段设置标头的角色?

iphone xcode gcc xcodebuild static-libraries

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

UITabBarController:以编程方式切换到不同的视图控制器

在我的iPhone应用程序中,要恢复以前查看的选项卡,在启动时我设置了setSelectedIndex :(也尝试过setSelectedViewController:根据文档但无效)

这适用于iPhone OS 3.0 - 但是在OS 2.x上,所选索引大于3(前4个选项卡)不会切换到所需视图.Apple在此处记录了这一点:http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UITabBarController_Class/Reference/Reference.html#//apple_ref/occ/instp/UITabBarController/selectedViewController

我想知道是否可以切换到iPhone OS 2.x下的视图控制器?任何帮助表示赞赏.

顺便提一下我的模拟器设置索引大于3会引发错误(对于iPhone OS 2.x) - 所以我把它包装在@try {..} @catch(id ..){}块中 - 希望这个技术可以帮助某人.

iphone restore objective-c uitabbarcontroller uinavigationcontroller

8
推荐指数
2
解决办法
3万
查看次数

.NET中的WeakReference实现

我理解并欣赏.NET框架中System.WeakReference类的用处,但我对实现细节很好奇.

WeakReference是如何在.NET中实现的?MSDN详细讨论了WeakReference的用法,但是我已经看到了一些关于它如何工作的细节.

CLR如何跟踪引用并知道在收集目标时将内部句柄清空,而不会阻止GC?它是否需要CLR本身的特殊处理?

我主要担心的是,使用WeakReferences(特别是如果使用其中许多)与使用标准对象引用时的性能有关.

.net clr reference reference-counting

27
推荐指数
2
解决办法
3763
查看次数

.NET在32位或64位系统中有什么区别?

想象一下纯粹的.NET应用程序,它不使用COM组件也不使用PInvoke.目标系统是32位还是64位是否重要?

.net 64-bit operating-system 32-bit

4
推荐指数
2
解决办法
836
查看次数

MKMapView和setRegion:animated:不更新地图视觉效果

问候!我试图在没有任何Apple代码示例的情况下使用MKMapView,尽管还有其他一些不同的清晰度.(我知道,"阅读友好的手册."我已经做到了,但并非100%明确,所以请耐心等待.)

这是情况.我有一个MKMapView对象,其中我添加了一组大约十个MKPinAnnotation对象.到现在为止还挺好.一切都得到了很好的分配/释放,似乎没有任何来自仪器的投诉.

在初始显示时,我设置了一个MKCoordinateRegion对象,其中心点位于我们的第一个引脚位置,并且(任意)跨度为0.2 x 0.2.然后我打电话给:

[mapView setRegion:region animated:YES];
[mapView regionThatFits:region];
Run Code Online (Sandbox Code Playgroud)

哇!这很好用.

同时......我还有一个分段控制,允许移动到每个引脚位置.因此,当我点击列表时,地图会动画到每个新的引脚位置,并使用一对新的setRegion:animated:regionThatFits: ...或者至少是这个想法.

当地图"移动"到新的引脚位置时,地图本身不会在下面更新.相反,我看到我的图钉在灰色/空白地图背景上... 直到我向任何方向轻推地图,不过有点轻微.然后地图显示通过!(如果我只是在前一个引脚位置的一小段距离内移动,我通常会看到地图的任何部分已经加载了.)

我怀疑我在这里做了一些愚蠢的事,但我无法弄清楚什么,至少不是来自MapKit文档.也许我正在使用错误的电话?(好吧,我确实需要设置该区域至少一次,是吗?移动它似乎没有帮助.)我也尝试过使用setCenterCoordinate:animated: - 同样的问题.

我现在什么都不做(没有双关语).只是想找到自己的方式.

线索欢迎/赞赏!

更新:调用setRegion:animated:regionThatFits:第一次,然后是setCenterCoordinate:animated:在遍历列表时,没有任何效果.有趣的发现:如果我在两种情况下都将动画更改为NO,则地图会更新!!! 只有当它设置为YES时.(什么时候发生?!动画:破碎了?那不可能...... ???)

mapkit iphone-sdk-3.0 android-mapview

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

Java的QP求解器

我正在寻找一个易于使用的基于Java的二次规划(QP)求解器.

谷歌搜索我遇到了ojAlgo(http://ojalgo.org).

但是,我想知道是否还有其他/更好的选择.

java numerical mathematical-optimization quadratic solver

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

在Python中获取调用函数模块的__name__

假设myapp/foo.py包含:

def info(msg):
    caller_name = ????
    print '[%s] %s' % (caller_name, msg)
Run Code Online (Sandbox Code Playgroud)

myapp/bar.py包含:

import foo
foo.info('Hello') # => [myapp.bar] Hello
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我希望caller_name将其设置为__name__调用函数模块的属性(即'myapp.foo').如何才能做到这一点?

python introspection stack-trace

87
推荐指数
3
解决办法
5万
查看次数

给定字体的字符串长度以适合UITextView 2 - 返回

这个问题中,我要求一种截断字符串以适合给定UITextView的好方法.由于SDK没有直接提供的方法,我最终编写了下面的递归方法(仅通过以下公共方法调用).但是,除非我在计算字符串的高度时从字段宽度中减去软糖因子15(kFudgeFactor),否则这不起作用.如果我不这样做,返回的字符串对于字段来说实际上太长了,并且显示在它下面的额外行中.任何人都知道为什么,我应该使用什么而不是这个软糖因素?

#pragma mark Size string to fit the new view

#define kFudgeFactor 15.0
#define kMaxFieldHeight 9999.0

// recursive method called by the main API
-(NSString*) sizeStringToFit:(NSString*)aString min:(int)aMin max:(int)aMax
{
if ((aMax-aMin) <= 1)
    {
    NSString* subString = [aString substringToIndex:aMin];
    return subString;
    }

int mean = (aMin + aMax)/2; 
NSString* subString = [aString substringToIndex:mean];

CGSize tallerSize = CGSizeMake(self.frame.size.width-kFudgeFactor,kMaxFieldHeight);
CGSize stringSize = [subString sizeWithFont:self.font constrainedToSize:tallerSize lineBreakMode:UILineBreakModeWordWrap];

if (stringSize.height <= self.frame.size.height)
        return [self sizeStringToFit:aString min:mean max:aMax]; // too small
else    
        return …
Run Code Online (Sandbox Code Playgroud)

iphone cocoa-touch

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

将SIGINT发送到python的子进程

我有一个在Windows上管理gdb进程的python脚本,我需要能够将SIGINT发送到生成的进程以暂停目标进程(由gdb管理)

似乎win32中只有SIGTERM可用,但很明显,如果我从控制台和Ctrl + C运行gdb,它认为它正在接收SIGINT.有没有办法可以假装这个功能,以便在所有平台上都可以使用这些功能?

(我使用的是子进程模块,以及python 2.5/2.6)

python windows subprocess signal-handling sigint

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