我试图在我写的一个小应用程序中使用deleteCharactersInRange函数,但我总是得到一个错误:'尝试用deleteCharactersInRange改变不可变对象:' 但我定义了我希望用作NSMutableString的字符串。
任何想法?
代码段:
接口文件:
#import <UIKit/UIKit.h>
@interface MyappViewController : UIViewController {
NSMutableString *displayString;
}
@property (nonatomic, retain) NSMutableString *displayString;
@end
实现:
#import "MyappViewController.h"
@implementation MyappViewController
@synthesize displayString;
-(void) aFunction
{
[displayString deleteCharactersInRange:NSMakeRange([displayString length]-1,1)];
}
@end
答案 0 :(得分:2)
仅仅因为你已经将displayString声明为NSMutableString,这并不意味着它总是指向NSMutableString。你只告诉编译器那应该是那里的东西。检查displayString实际设置的位置。听起来它必须设置为NSString,而不是NSMutableString。