我已经构建了一个我想要给我的客户的pharo应用程序.该应用程序基于海边,将无头.为此,我不需要.source和.changes文件.我想在分发存档中保存一些空间,因此我想跳过这些文件.
目前,在我看来pharo正在抱怨,如果这些文件丢失了.有没有机会在没有.sources和.changes文件的情况下启动图像?
有谁知道会导致什么?我无法将任何内容保存到我的班级,因为我收到了调试异常:Collection为空

链接到源:https: //dl.dropboxusercontent.com/u/1817765/Pharo%20Crash%20Files.rar
重新创建的步骤:
.image文件,而不该.changes在同一个目录下的文件NumberWithUnits>>=
NumberWithUnits
如何在smalltalk/squeak/pharo中获取给定协议中所有(类)方法的集合?
我正在尝试收集一组方法返回的值.我不想将方法存储在实例或类变量中.所以我虽然可以将它们添加到协议中并以这种方式"标记"它们.
谢谢.
a > b
ifTrue:[ 'greater' ]
ifFalse:[ 'less or equal' ]
Run Code Online (Sandbox Code Playgroud)
我的理解是,布尔a> b接收消息ifTrue:['greater'],然后ifFalse:['less or equal']符合泛化:
objectInstance selector; selector2
Run Code Online (Sandbox Code Playgroud)
但是需要一个分号来指定selector2的接收者不是(objectInstance选择器)而是objectInstance.与上述条件执行不一样吗?
我想知道使Morphic特别的事情.
在学习Smalltalk时,我看到了3个不同的VM.他们是Squeak/Pharo/Newspeak.他们之间有什么区别?
在Smalltalk中,系统浏览器是几乎任何东西的核心工具.Glamour似乎是使用声明性脚本语言构建通用浏览器的软件包.从论文中可以看到VisualWorks和Pharo,但我在这里只讨论Pharo版本.
除了Glamour相对于旧方法的技术优势之外,对于OmniBrowser的支持似乎在2011/2012年停止.所以从2009年开始的Glamour可能是OmniBrowser的合理继承者.但是有一个令人惊讶的惊喜:另一个"浏览器项目"被创建,它被称为Nautilus.
可能是因为开发人员注意到作为浏览器实现框架和类浏览器很难维护,OmniBrowser在Glamour中被"拆分"用于浏览器框架和Nautilus for Smalltalk Class Browsing.引自Nautilus chpater:"它的目的是浏览RPackage,与RB重构引擎兼容,具有环境意识并与公告合作"
在Java和C++等语言中,我们为构造函数提供参数.
你是如何在Pharo Smalltalk中做到这一点的?
我想要类似的东西
|aColor|
aColor = Color new 'red'.
Run Code Online (Sandbox Code Playgroud)
或者这是不好的做法,我应该一直这样做
|aColor|
aColor = Color new.
aColor name:= red.d
Run Code Online (Sandbox Code Playgroud) 我在Pharo Smalltalk中使用过pragma,并了解它们是如何工作的,并且已经看到了Pharo中使用它们的例子.
我的问题是:
我是Smalltalk的新手,我一整天都在寻找如何编写GUI.我已经找到了大量关于如何使用Morphs和Halos是什么的信息,但我似乎无法找到我需要的东西(它只是一个带有a条目的表Dictionary).
接下来Morphs,我还发现了一些关于smalltalk如何引入MVC原理的东西.我甚至找到了ST-80 Views包含我需要的所有内容的类别,但我又不确定如何正确使用它,不知怎的,我似乎找不到合适的来源让我开始.
因此,我的问题:从哪里开始构建一个简单的GUI?我应该如何从Morph可用的十亿中选择,如何将它们组合成一个可靠的界面?MVC只应在它变得更复杂时使用,还是对简单的GUI有用?关于在哪些情况下使用什么,是否有任何一般概述?
为了说明我想做什么,我添加了一些伪代码,我将如何记住它:
d := Dictionary new.
"add data to the dictionary..."
view := DictionaryView new.
view addDictionary: d.
button := SimpleButtonMorph new.
"e.g. change label to sum of values"
button target: [button label: d sum.].
window := SystemWindow labelled: test.
window addMorph: view.
window addMorph: button.
Run Code Online (Sandbox Code Playgroud)
任何帮助我开始这一点的人都非常感谢.
我最近在一本书中找到了一章,通过一些很好的解释和示例代码帮助我更好地理解形态,对于想要了解更多的人,也有一整套免费书籍.来自吱吱声维基的教程也很有用.特别是那个Pluggable Morphs让我更好地理解这个概念.请注意,本教程隐藏在未查看的教程列表中(可能是因为项目中存在一些可以下载的错误).
smalltalk ×10
pharo ×7
squeak ×5
visualworks ×2
cocoa ×1
morphic ×1
newspeak ×1
objective-c ×1