NSMutableString init问题

时间:2014-08-28 02:52:45

标签: ios objective-c nsmutablestring

我遇到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];

谢谢,

1 个答案:

答案 0 :(得分:1)

首次创建对象时,标题对象为零。您必须初始化标题对象,然后才能向其追加任何内容。

self.title = [[NSMutableString alloc] init];

您应该在适当的位置设置它 - 例如,视图控制器上的viewDidLoad。

请参阅下面的Tommy评论,了解为什么您不希望在init方法本身中执行此操作。