【发布时间】:2014-07-25 06:35:08
【问题描述】:
我正在尝试创建一个 NSMutableArray,它在按下按钮时添加了一个浮点数(转换为 NSInteger)。该按钮连接到一个timerViewController,其实现文件中的代码块如下(本题的if语句可以忽略):
- (IBAction)timeSaveButton:(UIButton *)sender {
if ([self.timerStartOrStop.titleLabel.text isEqual: @"Start"]){
RecordedTimes *myTimes = [[RecordedTimes alloc] init];
[myTimes addANewTime: self.timerTime];
}
}
它引用的“RecordedTimes”类在 .h 文件中声明了 NSMutableArray 和“addANewTime”方法
@interface RecordedTimes : NSObject
@property (nonatomic) NSMutableArray *recordedTimes;
-(void)addANewTime: (float) timerTime;
@end
它的实现文件是
@implementation RecordedTimes
-(void) addANewTime:(float)timerTime{
NSMutableArray *myTimes = [[NSMutableArray alloc] init];
[myTimes addObject:[NSString stringWithFormat:@"%f", timerTime]];
}
@end
问题是每次我保存一个新时间时,数组都会清空并只存储最近的 timerTime。我知道这是因为我的 viewController(和 addANewTime 方法)每次都会初始化数组,导致它擦除其内容。如何解决这个问题以及在哪里初始化数组是我很困惑的地方。
请在您的回复中详细说明。我是 XCode 和 Objective-C 的新手。谢谢。
【问题讨论】:
-
这是关于实例变量的范围。 techotopia.com/index.php/…
-
尝试在 viewDidLoad 中初始化 NSMutableArray 以避免每次向 addANewTime 传递消息时都会重新初始化它。
-
如果您找到任何符合您的问题的答案,请投票正确。
标签: ios objective-c initialization nsmutablearray