MacRuby NSTextView添加文本挂起程序

时间:2011-11-28 13:10:36

标签: ruby cocoa macruby

我有NSTextView,我使用

添加文本
def puts(val)
    storage = @output.textStorage
    storage.beginEditing
    storage.appendAttributedString(NSAttributedString.alloc.initWithString(val+"\n"))
    storage.endEditing
end

这种情况很常见,但在某个时间点它会挂起整个程序(旋转死亡之球)。

我从MacRuby线程调用此方法,所以我认为它与它有关。

1 个答案:

答案 0 :(得分:2)

我设置string NSTextView的{​​{1}}属性,名为home_text

home_text.string = "a very loooooong string"

我从未有过“沙滩排球/死亡披萨”。当我不确定我可以依赖默认值时,我会在我想要添加到NSTextView的字符串上添加一个控件,以避免将其设置为nil值。基本的东西,我知道对不起!

您是否正在主线程或其他地方进行任何I / O操作,而不使用Cocoa最强大的异步API?就像从网上下载东西一样,例如,使用NSURLDownload代替

可以更安全地执行

Net::HTTP.get('...a url...','..a path..")

download_url = NSURl.UrlWithString '...a url...'
download_data = NSMutableStringalloc.initWithContentsOfUrl(download_url, 
                                                           encoding:..., 
                                                            error:...)

是同步的。 这可以解释你的问题的随机性,虽然这只是可能的原因之一。