2013-11-01 27 views
0

This is a follow on from my last question.从一个特定点

检查长字符串的值,我想比较的字符串来通过如下:

Discovered Peripherial: <CBPeripheral: 0x39b8b50 identifier = DEEE65FB-FF1F-A6A9-4C3C-5784F41B0D39, Name = "rawr", state = connecting> 

我试图做的是检查标识号到我在我的程序中存储的内容。要做到这一点,我也做了以下内容:

private void AppendString(string message) 
{ 
    message.Substring(message.Length-77, message.Length); 
    outputContent.text += "\n" + message; 
} 

的\ n是在那里,因为我读6台不同的设备,他们都产生上述行。所以我需要一些让阅读更容易的东西。

然后在我更新的功能,我检查,看看它们是相似的,像这样:

if(String.Equals(myValues["UUID"], outputContent.text, StringComparison.OrdinalIgnoreCase)) 
{ 
    Instantiate(model1, new Vector3(-2.5f, 3.0f,0), Quaternion.identity); 
} 

然而,当我在我的iPad上运行此,Xcode中生成以下消息:

ArgumentOutOfRangeException: startIndex + length > this.length 
Parameter name: length 

我猜测的意思是我错误地计算了我需要从子字符串中计数的字符数量。

我的问题是这样的:

是否有更好的方法,我可以用一个很长的字符串或我做了一些愚蠢的在我的代码,其生成的特定部分的比较我的储值错误?

这是一个Unity项目,我在iPad上构建,并利用了一些我无法在Mac上复制的功能。

回答

0

在你的代码中,我观察到你正在调用Substring()方法,但没有将结果保存到某个变量中。

message.Substring(message.Length-77, message.Length); 

as string is an immutable which can not be modified。 因此,当您调用Substring()方法时,它将剪切所需的文本并返回,您必须将其保存在某个变量上才能继续。 如下:

如下取代你的函数AppendString():

private void AppendString(string message) 
{ 
    message= message.Substring(message.Length-77, message.Length); 
    outputContent.text += "\n" + message; 
}