问题列表 - 第4874页

在Objective-C中,Java的"instanceof"关键字相当于什么?

我想检查对象(例如someObject)是否可分配(可铸造)到另一种类型的变量(例如SpecifiedType).在Java中,我可以写:

someObject instanceof SpecifiedType
Run Code Online (Sandbox Code Playgroud)

一个相关的问题是查找对象的运行时类型是否等于另一种类型.在Java中,我可以写:

someObject.getClass().equals(SpecifiedType.class)
Run Code Online (Sandbox Code Playgroud)

如何在Objective-C中完成?

types casting equality objective-c downcast

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

如何让FxCop规则CA1726忽略首选术语?

FxCop有一条规则(CA1726),用于检查首选术语.这会查找"Dont"之类的单词,并告诉您用更好的单词替换它们,例如"Do not".一般情况下这很好,但它反对的术语之一是"Flag".在我们公司,业务涉及Flags意味着旗杆末端的那些布料.每次抑制这个规则都变得很痛苦.有没有人知道如何让这条规则适用于除"Flag"之外的所有事情?

注意:我知道我可以完全关闭规则,但我不想这样做.我只想关掉部分规则.

fxcop suppression

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

如何更改图像并禁用UIBarButtonItem

我有一个带有两个视图的NavigationBar应用程序:父视图和子视图.在子视图中,我在右下角添加了一个按钮,如下所示:

- (void)viewDidLoad {
    UIBarButtonItem *tempButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"lock-unlocked.png"] style:UIBarButtonItemStylePlain target:self action:@selector(lockScreen)];
    self.navigationItem.rightBarButtonItem = tempButton;
    [tempButton release];
}
Run Code Online (Sandbox Code Playgroud)

单击该按钮时,我想更改此rightBarButtonItem的图像并禁用leftBarButtonItem(由控制器自动添加).基本上有两个状态的按钮,锁定和解锁.

问题1:我能找到如何更改图像的唯一方法是使用新图像创建新的UIButtonItem并将rightBarButtonItem替换为新图像.但我想知道是否有办法在不创建新的UIBarButtonItem的情况下更改图像.如果我继续创建新的UIBarButtonItem,我是否会创建内存泄漏?

问题2:如何获取self.navigationItem.leftBarButtonItem并禁用/启用它?我没有手动创建它,它是由控制器自动创建的.我没有在UIBarButtonItem上看到任何方法/属性来启用/禁用用户与它的交互.

iphone cocoa-touch

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

LINQ中的实体附件问题

我在从表单POST收到LINQ实体后尝试将它附加到数据上下文中.但是,我得到的只是以下异常:

An entity can only be attached as modified without original state if it declares a version member or does not have an update check policy.
Run Code Online (Sandbox Code Playgroud)

我也试过附加原始行,如下所示:

dataContext.People.Attach(person, originalPerson);
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我得到以下异常:

Object reference not set to an instance of an object.
Run Code Online (Sandbox Code Playgroud)

这是我的控制器中的代码:

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(int id, Person person) {
    var prevPerson = dataContext.People.Single(p => p.ID == id);
    dataContext.People.Attach(person, prevPerson);
    dataContext.SubmitChanges();
    return Redirect("~/People/Index");
}
Run Code Online (Sandbox Code Playgroud)

关于我在这里做错了什么的想法?如果需要,我可以发布实体代码.

c# asp.net-mvc linq-to-sql

16
推荐指数
2
解决办法
8805
查看次数

现代C++变得更加普遍吗?

当我6-7年前第一次学习C++时,我学到的基本上是"C with Classes".std::vector绝对是一个高级话题,如果你真的想要,你可以学到一些东西.当然没有人告诉我可以利用析构函数来帮助管理记忆.今天,我看到的每个地方都看到RAII和SFINAE,STL和Boost以及现代C++.即使是刚刚开始使用该语言的人,也几乎从第1天开始就教授这些概念.

我的问题是,这只是因为我只看到"最好的",即SO上的问题,以及其他倾向于吸引初学者(gamedev.net)的编程网站,或者这实际上代表了C++社区作为一个整体?

现代C++真的成为默认的吗?专家们写的不是一些奇特的东西,而是变成"C++的方式"吗?或者我只是无法看到仍然学习"C with classes"并编写自己的动态数组而不是使用的数千人std::vector,并通过从他们的顶级代码手动调用new/delete来进行内存管理?

尽管我想要相信它,但如果整个C++社区在几年内发展得如此之多,那似乎令人难以置信.您的经历和印象是什么?

(免责声明:不熟悉C++的人可能会错误地解释标题,因为询问C++是否比其他语言更受欢迎.这不是我的问题."现代C++"是C++中方言或编程风格的通用名称,以该书命名" 现代C++设计:通用编程和设计模式应用 ",我只对这与"旧C++"感兴趣.所以不需要告诉我C++的时间已经过去,我们都应该使用Python;))

c++

132
推荐指数
10
解决办法
3万
查看次数

带有命名空间的XPath选择节点

它是一个.vbproj,看起来像这样

<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <PropertyGroup>
        <ProjectGuid>15a7ee82-9020-4fda-a7fb-85a61664692d</ProjectGuid>
Run Code Online (Sandbox Code Playgroud)

我想得到的只是ProjectGuid,但是当命名空间存在时它不起作用......

 Dim xmlDoc As New XmlDocument()
 Dim filePath As String = Path.Combine(mDirectory, name + "\" + name + ".vbproj")
 xmlDoc.Load(filePath)
 Dim value As Object = xmlDoc.SelectNodes("/Project/PropertyGroup/ProjectGuid")
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能解决这个问题?

xml vb.net xpath xml-namespaces

64
推荐指数
3
解决办法
6万
查看次数

无法引用初始化程序中的静态枚举字段?

我刚刚得到Java5项目有这个错误,我尝试使用Java5和Java6,但它仍然存在.它以某种方式工作(因为它是在svn),我怎么能绕过编译器错误?

java compiler-construction

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

工厂对象与工厂功能

我有一个带有几个派生类的ABC.要创建这些派生类,我使用工厂模式:

.h文件:

class derivedFactory
{
public:
    base* createInstance();
};
Run Code Online (Sandbox Code Playgroud)

.cpp文件:

base* derivedFactory::createInstance()
{
    return new derived();
}
Run Code Online (Sandbox Code Playgroud)

只有拥有一个免费功能,这有什么好处:

.h文件:

base* derivedFactoryFunction();
Run Code Online (Sandbox Code Playgroud)

.cpp文件:

base* derivedFactoryFunction()
{
    return new derived();
}
Run Code Online (Sandbox Code Playgroud)

另外:我使用抽象工厂模式进行依赖注入.我可能会使用基于ABC的继承层次结构:

class objectCreator
{
public:
    base* create() = 0;
};
Run Code Online (Sandbox Code Playgroud)

在函数指针上使用它有什么好处:

boost::function<base* ()> factory_ptr;
Run Code Online (Sandbox Code Playgroud)

使用boost :: bind/lambda这似乎使我的代码更易于组合,如果我希望我可以在其中包装一个真正的工厂对象.我可以看到可能会有轻微的性能下降,但这很令人担心,因为它只在启动时调用.

c++ design-patterns factory

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

我有VS C++ Express.有没有办法创建.DEF文件?

如果有人能帮助我,我将非常感激.我正在学习C++,而且我一直在努力解决这个问题.

基本上,VS C++ Express没有附带.DEF模板.我还有什么方法可以创建这个文件?

我可以在VS中设置一个参数,以便链接器可以动态创建吗?

谢谢!!!

c++ dll

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

Java simple String diff util

我正在寻找一个简单的java lib/src来突出显示两个字符串之间的区别,区分大小写.一个html输出会很棒,但我很乐意得到差异的索引,如:

diff("abcd","aacd") 
> [2,2]
diff("maniac", "brainiac")
> ["man",brain"] or [0,3] or something like that
Run Code Online (Sandbox Code Playgroud)

由于输入符合严格的约定,因此想法是在摆动程序中突出错别字或类似错误.

java string algorithm diff swing

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