我还在学习Objective-C,如果这是一个简单的业余错误,请原谅我,但我想我们都必须以某种方式学习。
基本上,我有一个应用程序,其中包含一小段简单的文本,位于屏幕的标题处,已经使用IBOutlet命名为'headerText'。我希望它显示“二月摘要”,用当前月份替换二月 - 因此必须动态获取月份。
- (void)setHeaderText {
NSString *headerTextTitle;
NSString *monthString;
NSDate *month;
NSDateFormatter *dateFormat;
month = [[NSDate alloc] init]; // Automatically fills in today's date
[dateFormat setDateFormat:@"MMMM"];
monthString = [dateFormat stringFromDate:month];
headerTextTitle = [[NSString alloc] initWithFormat:@"Summary for (%@)", monthString];
headerText.text = headerTextTitle;
[headerTextTitle release];
[monthString release];
[month release];
[dateFormat release];
}
我可以明显地修改文本等内容,但每当我在viewDidLoad中调用此方法时,应用程序就会崩溃。有人能告诉我问题出在哪里吗?我认为错误出现在这一行:
[dateFormat setDateFormat:@"MMMM"];
因为在使用断点时会出现一些奇怪的问题。我做错了什么?我感到很困惑。
感谢您的帮助!
杰克
编辑:我现在正在这样做:
month = [[NSDate alloc] init]; // Automatically fills in today's date
dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MMMM"];
monthString = [dateFormat stringFromDate:month];
但是它仍然失败了吗?
[dateFormat stringFromDate:month];
给出的。没有必要自己分配一个。只需消除月份字符串上未平衡的释放即可。 - Ken