我似乎有一个漏洞的UIDatePicker.我注意到用于设置datePickerMode以显示日期和时间的内存泄漏.但是,我只是想显示日期.我很确定这是一个框架泄漏,因为当我注释掉几个UIDatePicker属性赋值时,泄漏就会消失.此代码泄漏1个CGColor对象和1个UIDeviceRGBColor对象:
datePicker = [[UIDatePicker alloc] initWithFrame:[self detailViewRect]];
datePicker.datePickerMode = UIDatePickerModeDate; //leaks CGColor when setting this
datePicker.hidden = NO;
datePicker.timeZone = [NSTimeZone systemTimeZone]; //leaks UIDeviceRGBColor
datePicker.maximumDate = [NSDate date];//leaks UIDeviceRGBColor
datePicker.autoresizingMask = UIViewAutoresizingFlexibleWidth;
Run Code Online (Sandbox Code Playgroud)
通过评论仪器报告的违规行为,我没有泄漏:
datePicker = [[UIDatePicker alloc] initWithFrame:[self detailViewRect]];
//datePicker.datePickerMode = UIDatePickerModeDate; //leaks CGColor when setting this
datePicker.hidden = NO;
//datePicker.timeZone = [NSTimeZone systemTimeZone]; //leaks UIDeviceRGBColor
//datePicker.maximumDate = [NSDate date];//leaks UIDeviceRGBColor
datePicker.autoresizingMask = UIViewAutoresizingFlexibleWidth;
Run Code Online (Sandbox Code Playgroud)
如果没有设置日期模式,UIDatePicker就毫无价值.有没有人有解决方法?
我有一个属性,我称之为索引.我有一个可变数组,我将其称为数组.我很震惊地发现这段代码抛出索引超出范围的异常?
if(index >= [array count]) return;
for(self.item = [array objectAtIndex:index]; index < [array count]; self.item = [array objectAtIndex:index]) {
index++;
//do stuffs
}
Run Code Online (Sandbox Code Playgroud)
但是,此变体有效:
if(index >= [array count]) return;
while(index < [array count];) {
self.item = [array objectAtIndex:index];
index++;
//do stuffs
}
Run Code Online (Sandbox Code Playgroud)
我希望循环操作如下:
for(initialization instructions; condition; next iteration instruction) {...}
Run Code Online (Sandbox Code Playgroud)
我期待以下顺序:
这告诉我for循环不一定在执行下一个迭代代码之前检查条件(如在C/C++中).所以,我很好奇是否有关于for循环操作顺序的多种思想流派.如果没有,这告诉我有更复杂的问题需要解决.
谢谢.