我有一个名为Profile
和NSMutableArray
的自定义类,我会添加配置文件对象,以防我需要在迭代中来回移动。
代码是这样的:
@try {
currentProfile = (Profile *) [cache objectAtIndex:(int)currentPosition-1];
}
@catch (NSException * e) {
Profile *cached = [[Profile alloc] init];
[cached loadProfile:currentPosition orUsingUsername:nil appSource:source];
cached.position = NULL;
[cache addObject:cached];
currentProfile = cached;
[cached release];
}
//And the "log" i use to show the error
Profile *temp;
for (int i=0; i<[cache count]; i++) {
temp = (Profile *) [cache objectAtIndex:(int)currentPosition-1];
NSLog(@"%@ - %d e %d", temp.name, temp.position, temp.realId);
}
[temp release];
NSLog使用相同的对象返回缓存时间长度。 I.E.
对于len = 1:
第一 - 1 e 1
表示len = 2:
第二 - 2 e 2
第二 - 2 e 2
表示len = 3:
第三 - 3 e 3
第三 - 3 e 3
第三 - 3 e 3
依旧......
我需要的是:
对于len = 3:
第一 - 1 e 1
第二 - 2 e 2
第三 - 3 e 3
答案 0 :(得分:3)
您可能希望在循环中使用变量i
,而不是currentPosition
for (int i=0; i<[cache count]; i++) {
temp = (Profile *) [cache objectAtIndex:i];
NSLog(@"%@ - %d e %d", temp.name, temp.position, temp.realId);
}
否则,您始终会检索相同的对象。
您可能还想考虑每个&#39;循环而不是简单的'#39;。只是为了简单起见。
for (Profile *temp in cache) {
NSLog(@"%@ - %d e %d", temp.name, temp.position, temp.realId);
}