NSString问题

时间:2010-11-27 21:41:58

标签: iphone objective-c nsstring

NSRange rangetxt={0,(index-1)};
NSString *tempStr= textBox.text;
NSString *tempTextBox=[tempStr substringWithRange:rangetxt];

大家好,

我想知道为什么我的粘贴代码无法正常工作,当编译器通过时substringWithRange它挂起并且没有为tempTextBox分配任何值,其次我尝试了NSString函数substringToIndex但它也不起作用,我的目标是在将tempStr复制到tempTextBox时跳过最后一个字符。

此致 MGD

4 个答案:

答案 0 :(得分:2)

您应该使用NSMakeRange(loc, len)创建NSRange对象,而不是使用 {}

答案 1 :(得分:2)

我测试了这段代码并且有效:

NSString *strTest = @"Word";
NSRange range = {0, 3};
NSString *strTemp = [strTest substringWithRange: range];

结果:strTemp =“Wor”

所以问题是别的:索引不正确或者textBox.text可能是空的。

将断点放在substringWithRange:行上,并在出现问题之前查看index和tempStr的值。

答案 2 :(得分:1)

您没有显示初始化index的代码。我的猜测是它超出了范围。请注意,如果范围的任何部分超出接收者的末尾,则substringWithRange会引发NSRangeException

试试这个:

NSString *tempStr = textBox.text;
NSRange rangetxt;
if ([tempStr length] > 0)
    rangetxt = NSMakeRange(0, [tempStr length] - 1);
else
    rangetxt = NSMakeRange(0, 0); 
NSString *tempTextBox = [tempStr substringWithRange:rangetxt];

答案 3 :(得分:0)

我认为我的问题已经解决了,在调试期间,当我通过这些行时,我的gdb说“超时获取数据。变量显示可能不准确”所以我发现解决方案只是在初始化之后放置了我的断点NSString对象

感谢大家的帮助

MGD