2014-09-05 21 views
1

有没有办法在Pharo Smalltalk中告诉当前图像是运行时图像还是开发图像?我想创建一种方式来表示运行时图像的关闭,但不是开发图像。是运行时方法

回答

0

Smalltalk图像中没有像“运行时”与“开发”这样的内置区别。但是,由于它是一个现场环境,因此您可以指出这一点,但您需要通过一个单身人士。例如:

SessionType class>>uniqueInstance 
^uniqueInstance ifNil: [ uniqueInstance := self new ] 

SessionType>>isDevelopment 
^isDevelopment 

SessionType>>isDevelopment: aBoolean 
    isDevelopment := aBoolean 
+0

谢谢你的快速反应。我是很新,福络。所有的我的Smalltalk经验与VA Smalltalk有关。他们曾经有一种方法,(我相信系统级别),表示您是在开发映像还是在打包的运行时映像中。 – 2014-09-05 14:27:28

+0

如果您发现它很有用,请在Dev邮件列表中列出一个包含在核心中的例子。社区对良好的想法非常开放(特别是在有代码的情况下)。欢迎来到Pharo :) – 2014-09-06 00:53:52

+0

不知道任何关于Dev邮件列表。你能否详细说明一下? – 2014-09-06 02:56:25

1

在Pharo中,有一种剥离功能可以去除开发时间类和工具,并将其打包为运行时。它与弗吉尼亚州类似,但不像美国一样。

没有一个方便的方法来检查它的运行时间vs dev。但是,增加一个是在Smalltalk便宜..所以继续前进,把它添加到

SmalltalkImage >> isRuntime

^(Smalltalk at: #Metacello1 ifAbsent: [ ]) isNil 

“或者你能保证任何一类在任何时候运行,始终没有出现在运行时图像目前在开发中..

ImageCleaner >>提供方法来清理生产/释放..并给予一些更腿。