我正在使用一个名为func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
if textView == postCommentTextView {
if textView.text == "#" {
recordingHash = true
recordingMention = false
startParseHash = range.location
} else if textView.text == "@" {
recordingHash = false
recordingMention = true
startParseMention = range.location
} else if textView.text == " " {
recordingHash = false
recordingMention = false
createdHashesArray.append(createdHashString)
createdHashString = ""
}
if recordingHash != nil {
if recordingHash == true {
var value = String()
print("COUNT: \(textView.text.count)")
if startParseHash <= (textView.text.count - startParseHash) {
let createdRange = NSMakeRange(startParseHash, textView.text.count - startParseHash)
value = textView.text(in: createdRange.toTextRange(textView)!)! //as! NSString
createdHashString = "\(value)"
// print("hash:\(createdHashString)")
}
print("hash:\(createdHashString)")
if textView.text.count == 0 {
recordingHash = false
recordingMention = false
// createdHashesArray.append(createdHashString)
createdHashString = ""
}
}
}
return true
}
的库与来自蚱蜢的Kuka机器人手臂进行通信。
如果我从命令行python shell运行程序,一切正常。但是,当我从GhPython运行相同的东西时,我得到以下内容:
我不知道为什么我会在GhPython中获得异常,但是当我在GH环境之外运行时却没有。该程序仍然连接到服务器并检索/发送我需要的信息,但我想确保并解决此异常。
谢谢!
答案 0 :(得分:0)
很难告诉你如何修复错误,因为你没有提供触发它的代码,但实质上它来自GHPython是IronPython(基于.Net的Python的实现)而Python Shell的事实是用C编写的实现。
这两种实现方式类似,但有时会产生差异。
在您的情况下,脚本需要string
或tuple
,但会获得IronPython.Runtime.Bytes
。
答案 1 :(得分:0)
嗯,当期望str看起来像unicode字符串vs字节字符串问题时得到字节。你没有描述你的CPython和GHPython的版本,但是你应该知道Python 2的字符串是字节串,而Python 3的字符串是unicode字符串。
如果在Python 2中,您可以通过在u
前面添加一个字符串来强制使用unicode:u"foo"
是一个unicode字符串。您还可以解码字节字符串到其unicode版本:b'ae\xe9\xe8'.decode('Latin1')
是unicode字符串u'aeéè'