我遇到NSMutablestring的问题。当我使用它而没有覆盖我的类init方法时,它不起作用。
我的界面代码:
@interface Topic : NSObject
@property (strong, nonatomic) NSMutableString *title;
@property (strong, nonatomic) NSMutableString *description;
@end
如果我用这个类创建了一个对象,那么尝试将一个字符串赋给" title",它的NSLog打印出Null!
这是我尝试使用时的代码:
Topic *myTopic = [[Topic alloc] init];
[myTopic.title appendString:@"Hello World"];
为了避免这个问题,我必须覆盖我的Topic类init方法并添加以下行:
self.title = [[NSMutableString alloc]init];
有什么想法吗?
编辑:这一行应该正确初始化我的属性和方法(不覆盖init方法)?
Topic *myTopic = [[Topic alloc] init];
谢谢,
答案 0 :(得分:1)
首次创建对象时,标题对象为零。您必须初始化标题对象,然后才能向其追加任何内容。
self.title = [[NSMutableString alloc] init];
您应该在适当的位置设置它 - 例如,视图控制器上的viewDidLoad。
请参阅下面的Tommy评论,了解为什么您不希望在init方法本身中执行此操作。