Win*_*ton 5 iphone cocoa-touch objective-c automatic-ref-counting
我在ARC中使用此代码:
NSMutableDictionary *datesDict = [[NSMutableDictionary alloc]init];
NSMutableArray *datesArray = [[NSMutableArray alloc]init];
for (NSString *key in programsArray) {
datesArray = [_onDemandDictionary objectForKey:key];
NSMutableArray *newDates = [[NSMutableArray alloc]init];
int count;
for (count = 0; count <datesArray.count; count++) {
NSMutableDictionary *programsDict = [[NSMutableDictionary alloc]init];
programsDict = [datesArray objectAtIndex:count];
[newDates addObject:[programsDict objectForKey:@"date"]];
}
[datesDict setObject:newDates forKey:key];
}
Run Code Online (Sandbox Code Playgroud)
但是,当我运行分析器工具时,我在初始化期间将值存储到(datesArray和programsDict),从不在行上读取:
NSMutableArray *datesArray = [[NSMutableArray alloc]init];
programsDict = [datesArray objectAtIndex:count];
Run Code Online (Sandbox Code Playgroud)
为什么会发生这种情况?如何隐藏警告?
谢谢!
Pau*_*l.s 17
问题是您创建一个新的NSMutableArray并datesArray在开始时将其分配给它
NSMutableArray *datesArray = [[NSMutableArray alloc]init];
Run Code Online (Sandbox Code Playgroud)
然后后立即分配一个完全不同的值datesArray与
datesArray = [_onDemandDictionary objectForKey:key];
Run Code Online (Sandbox Code Playgroud)
我会先说
NSMutableArray *datesArray = nil;
Run Code Online (Sandbox Code Playgroud)
这是相同的概念programsDict.
| 归档时间: |
|
| 查看次数: |
7082 次 |
| 最近记录: |