小编prd*_*prd的帖子

UIDatePicker日期方法选错日期:iPhone Dev

我在UIDatePicker上遇到了非常奇怪的行为.我有一个视图,在.h文件中声明的日期选择器为IBOutlet UIDatePicker*datePicker; 具有非原子性和保留性.datePicker在IB文件中正确链接.

在代码中我设置了使用以下代码调用UICOntrolEventValueChanged的最小值,最大值,初始日期和操作

If (!currentDate) {
    initialDate = [NSDate date];
} else {
    initialDate = currentdate;
}

[datePicker setMinimumDate:[NSDate date]];
[datePicker setMaximumDate:[[NSDate date] addTimeInterval:5 * 365.25 * 24 * 60 * 60]]; // to get upto 5 years 
[datePicker setDate:initialDate animated:YES];

[datePicker addTarget:self action:@selector(getDatePickerValue:) forControlEvents:UIControlEventValueChanged];
Run Code Online (Sandbox Code Playgroud)

在getDatePickerValue中,我使用datePicker.date获取新日期.

当视图关闭时(使用完成按钮),我使用datePicker.date获取日期的当前值.

现在,如果在没有'currentDate'的情况下调用视图,则选择器返回'todays date'.这就是我的pickerView被调用的'第一次'所发生的事情.对视图的每次后续调用都没有"当前日期",这给了我一个与今天不同的日期.所以,

我第一次得到今天的日期说2010年6月9日
第二次datePicker.date返回2010年6月10日
第三次2010年6月11日,依此类推.虽然它并不总是增量,但主要是它.

我已经放置了NSLog,并验证了初始日期设置正确.

问题仅出在设备上(在OS 3.0上),问题不会在模拟器上复制.

我找不到我做错了什么.我希望其他人遇到类似的问题,可以帮我解决这个问题.

iphone uidatepicker

5
推荐指数
1
解决办法
7399
查看次数

我应该释放从[NSMutableDictionary ValueForKey:]返回的数组

我有一个NSMutableDictionary,键是对象名称的第一个字母.该视图类似于iphone上的"联系人"选项卡.此外,用户可以选择列表中的单个对象.

在代码中,我找到每个选定的对象以进一步处理它们.

NSMutableArray *objectsToAdd = [[NSMutableArray alloc] init];
NSMutableArray *array      = nil;

for (NSString *key in self.nameIndex) {

    array = (NSMutableArray *)[searchedNameDictionary valueForKey:key];    
    for (Objects *eachObject in array) {
        if (eachObject.objectIsSelected){
            [objectsToAdd addObject:eachObject];
        }
    }           
}
[array release];

-(void)dealloc()
{
    [searchedNameDictionary release];
}
Run Code Online (Sandbox Code Playgroud)

应用程序崩溃我释放的searchNameDictionary,其中包含正在引用释放对象的消息.

现在,如果在上面的代码中,我删除[数组发布]应用程序工作正常.

我的问题是发布'array'实际上是在searchNameDictionary中释放对象,这似乎正在发生.

不会释放数组导致内存泄漏?

iphone nsmutabledictionary

2
推荐指数
1
解决办法
650
查看次数

标签 统计

iphone ×2

nsmutabledictionary ×1

uidatepicker ×1