问题标签 [modern-runtime]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
4144 浏览

iphone - 没有后备变量时在 Xcode 调试器中查看综合属性的值

我最近才开始在我的 iPhone 项目中使用合成实例变量。问题是,我在调试器中看不到合成的 ivars。当不使用显式声明的实例变量时,有什么方法可以在调试器中查看对象的属性?


我需要澄清第二个问题。我不是在问如何访问属性,或者它们做什么;我知道所有这些东西。我的印象是,在使用基于这篇文章的合成 ivars 时,您无法直接访问实例变量。我显然已经能够做我以前认为不可能的事情。我想知道发生了什么事。

我正在使用 Xcode 3.2.4/iPhone 模拟器/LLVM 编译器 1.5。

0 投票
5 回答
847 浏览

objective-c - 你什么时候不想使用@synthesized 实例变量?

在 Modern Objective-C 运行时中,您可以执行以下操作:

这是我对现代运行时的理解,这不仅会合成我的属性的访问器,还会合成实例变量本身,所以我可以在这个类的方法之一中[stringProperty length];说它就像我声明了一个实例一样工作多变的。

我现在已经开始在我的所有代码中使用它,因为,这是我必须一遍又一遍地编写的东西。而且我听说过使用 clang 2.0 编译器,我什至可以跳过@synthesize(但那是另一回事)。但我一直在想,这样做有什么缺点?除了我的属性之外,我什么时候真正需要一个实例变量?

我知道有时我想保持一个变量私有而不是从外部访问它(但是我通常只是在我的私有类扩展中声明该属性,或者我根本不为它创建一个属性,如果我不需要访问器)。

有没有什么时候我不想这样做?

0 投票
1 回答
2434 浏览

objective-c - 在类扩展中声明新属性在 Objective-C 中是一种不好的做法吗?

类扩展的一个强大优势是,通过类扩展,您可以在头文件中声明一个只读属性,并在类扩展中将该属性覆盖为读写属性。如下所示:

但是,如果您使用现代运行时,您还可以在类扩展中声明一个全新的属性(如果没有,它也会为该属性生成一个 iVar)。

这是我的问题:我认为在类扩展中声明一个全新的属性在某种程度上会产生一些副作用。因为类扩展名不在头文件中,并且子类化该类的其他人可能不知道该“秘密属性”。如果他声明一个与该“秘密财产”同名的财产。而这个新属性的 getter 和 setter 方法将覆盖超类的。这不是问题吗?为什么现代运行时会允许这样的事情发生?

编辑我发布了关于这个主题的另一个问题,请查看: 在类扩展中声明新属性的风险(Ojbective-C),如何解决?

0 投票
3 回答
697 浏览

iphone - 在接口块中同时使用属性和 ivars 的 Objective-c 现代运行时

我看过代码示例(来自《开始 iPhone 4 开发》一书),它们都在接口块内声明 ivars,然后声明相同的属性。像这样:

这样做的目的/好处是什么?据我了解,对于现代运行时版本(iPhone 和 64 位 OS X 应用程序),您只需要声明属性并且可以省略在接口块内声明 ivars。根据类似线程中的这个答案,它将用于调试目的。但是除了调试之外,您会使用这种方法还有其他好处吗?

干杯,

彼得

0 投票
1 回答
137 浏览

windows - 在 Window 8/RT 应用程序中检测和实现滚动条样式

我正在开发一个要放置在 ScrollViewer 中的自定义控件,我已经自定义编码了一个 generic.xaml,用于为 Scrollviewer 应用视觉样式。

我面临的问题是,我需要根据用户是否使用触摸设备将 IndicatorMode 设置为 TouchIndicator/MouseIndicator。有没有办法做到这一点?

谢谢

阿伦·塞尔瓦·库马尔。乙

0 投票
2 回答
305 浏览

c++ - 如何列出所有现代 UI 应用程序?

我想列出我的 Windows 8 机器上安装的所有 Modern UI 应用程序。

有没有办法从标准桌面应用程序(具有管理员权限)列出所有已安装的现代 UI 应用程序。