NSRange rangetxt={0,(index-1)};
NSString *tempStr= textBox.text;
NSString *tempTextBox=[tempStr substringWithRange:rangetxt];
大家好,
我想知道为什么我的粘贴代码无法正常工作,当编译器通过时substringWithRange
它挂起并且没有为tempTextBox
分配任何值,其次我尝试了NSString函数substringToIndex
但它也不起作用,我的目标是在将tempStr
复制到tempTextBox
时跳过最后一个字符。
此致 MGD
答案 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