我NSOutlineView 没有 使用NSTreeController并且已经实现了我自己的数据源.选择项目的最佳方式是什么?
NSOutlineView支持已经expandItem:和collapseItem:.我错过了一个方便的方法,如`selectItem:.我怎么能以编程方式做到这一点?
谢谢.
来自NSObject中的isKindOfClass:方法文档:
在类集群表示的对象上使用此方法时要小心.由于类集群的性质,您获得的对象可能并不总是您期望的类型.
然后,文档继续给出一个示例,说明为什么不应该像NSArray实例的以下内容那样:
// DO NOT DO THIS!
if ([myArray isKindOfClass:[NSMutableArray class]])
{
// Modify the object
}
Run Code Online (Sandbox Code Playgroud)
现在给出一个不同用途的例子,假设我有一个NSObject实例,我想确定我是否有NSString或NSArray.
这两种类型都是类集群 - 但是从上面的文档中可以看出,危险在于isKindOfClass的答案:过于肯定(有时当你真的没有可变数组时回答"是")而是询问有关简单成员资格的问题.群集仍然有效.
一个例子:
NSObject *originalValue;
// originalValue gets set to some instance
if ( [originalValue isKindOfClass:[NSString class]] )
// Do something with string
Run Code Online (Sandbox Code Playgroud)
这个假设是否正确?使用isKindOfClass是否真的安全:针对类集群实例来确定成员身份?我对无所不在的NSString,NSArray和NSDictionary的答案特别感兴趣,但我有兴趣知道它是否可以推广.
我总是对线程概念感到困惑.到目前为止,我还没有机会在真实的环境中使用它们.如果有人可以为我解释线程会很有帮助.
我正在尝试创建一个Windows虚拟驱动器(如c:\)来映射远程存储.主要目的是以清晰的方式对用户进行.因此,用户不会知道他正在从另一个站点写/读.
我正在寻找可用的产品,我发现FUSE不是Windows和WebDAV直接映射驱动器的选项,我想在Windows和远程存储之间构建一个中间层来实现某种服务.存在另一种替代方案,例如非常昂贵的Dokan和System.IO.IsolatedStorage命名空间,它似乎没有明确地创建新的Windows驱动器.
可能pismo(http://www.pismotechnic.com/)是最符合我要求的东西,但我知道是否有另一种选择,包括一些Windows(C++或.NET)原生API来做到这一点.
谢谢阅读 :)
我想显示我的数据库中的记录列表,然后对于每条记录,有两个字段,用户可以就地编辑这些字段,而无需将其定向到另一个页面进行编辑。我该怎么做
将我们的网站推送到我们的客户端生产服务器时出现此错误,但该页面在其开发/测试服务器上工作正常.导致此错误的原因(考虑到我自己没有使用任何Web资源,但我使用的是asp.net ajax工具包).
首先,有许多情况Sleep()被滥用,例如"同步"线程或定期轮询通知函数将执行的值(WaitForSingleObject例如,在Win32 中)
但是其他用例呢?是Sleep始终邪?如果没有,有什么好的用例Sleep?如果是的话,为什么几乎所有语言都有某种Sleep陈述?
PS:我问过这个问题是因为另一个问题的评论之一.OP表示,在他看来,Sleep应该避免像goto.
我正在学习W3Schools的XML属性.
作者提到了以下内容(强调我的):
XML元素与属性
Run Code Online (Sandbox Code Playgroud)<person sex="female"> <firstname>Anna</firstname> <lastname>Smith</lastname> </person>
Run Code Online (Sandbox Code Playgroud)<person> <sex>female</sex> <firstname>Anna</firstname> <lastname>Smith</lastname> </person>在第一个例子中,性是一种属性.在最后,性是一个元素.两个示例都提供相同的信息.
关于何时使用属性以及何时使用元素没有规则.属性在HTML中很方便.在XML中,我的建议是避免它们.请改用元素.
避免使用XML属性?
使用属性的一些问题是:
- 属性不能包含多个值(元素可以)
- 属性不能包含树结构(元素可以)
- 属性不易扩展(用于将来的更改)
属性很难阅读和维护.使用元素数据.使用属性来获取与数据无关的信息.
那么作者的观点是一个着名的,或者这是XML中的最佳实践?
应该避免使用XML中的属性吗?
W3Schools还提到了以下内容(强调我的):
元数据的XML属性
有时ID引用分配给元素.这些ID可用于识别XML元素,其方式与HTML中的ID属性非常相似.此示例演示了这一点:
Run Code Online (Sandbox Code Playgroud)<messages> <note id="501"> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note> <note id="502"> <to>Jani</to> <from>Tove</from> <heading>Re: Reminder</heading> <body>I will not</body> </note> </messages>上面的ID只是一个标识符,用于标识不同的注释.它不是音符本身的一部分.
我在这里要说的是元数据(有关数据的数据)应该作为属性存储,并且数据本身应该存储为元素.
我正在制作一款轻型RPG游戏,其中角色可以装备武器,装甲和2个配件插槽.这是一个可能的解决方案:
equipped_equipment(<characterid>, <equipmentid>, <slotid>)
slot(<slotid>, slotname)
equipment(<equipmentid>, equipment_name, equipment_script_name)
Run Code Online (Sandbox Code Playgroud)
所以,要找出角色装备的武器,我能做到
SELECT equipmentid, equipment_name FROM equipment e, equipped_equipment eq
WHERE e.equipmentid = eq.equipmentid AND eq.slotid = 'weapon' AND
eq.characterid = 1
Run Code Online (Sandbox Code Playgroud)
但是这与这样的架构相比如何呢?
equipment (<characterid>, weapon_slot, armor_slot, accessory1_sot, accessory2_slot)
Run Code Online (Sandbox Code Playgroud)
当然,使用上面的三个表(有些规范化 - 我可能将设备名称分开并放入equipment_details表或某种类型)它允许我
但是第二个非标准化解决方案允许我通过一个查询获取所有设备的ID,而添加新插槽只是添加一个新列.从长远来看哪一个更好?欢迎提出建议和改进!
当我退出调试模式时,Visual Studio构建整个解决方案.
这非常令人讨厌,因为该解决方案包含42个项目(ASP.NET MVC,IIS托管的WCF,Silverlight应用程序和其他),并且构建过程锁定了Visual Studio for aprox.30秒.
是什么导致Visual Studio完全重建解决方案?是否有可以打开的设置来确定问题的根源?