我是新的。請幫助,如何使之短:NSArray中有很多對象
effects = [[NSArray alloc] initWithObjects:@"Back1.jpg", @"Back2.jpg", @"Back3.jpg", @"Back4.jpg", @"Back5.jpg", @"Back6.jpg", @"Back7.jpg", @"Back8.jpg",@"Back9.jpg",nil];
thnaks。我想是這樣@ 「後面%i.jpg」,詮釋++
我是新的。請幫助,如何使之短:NSArray中有很多對象
effects = [[NSArray alloc] initWithObjects:@"Back1.jpg", @"Back2.jpg", @"Back3.jpg", @"Back4.jpg", @"Back5.jpg", @"Back6.jpg", @"Back7.jpg", @"Back8.jpg",@"Back9.jpg",nil];
thnaks。我想是這樣@ 「後面%i.jpg」,詮釋++
你熟悉的循環?
int whatever = 100;
NSMutableArray * effectsTmp = [NSMutableArray new];
for (int i = 0; i < whatever; i++) {
[effects addObject:[NSString stringWithFormat:@"Back%i.jpg", i]];
}
NSArray * effects = effectsTmp;
也許你想是這樣的:
NSMutableArray * effects = [[NSMutableArray alloc] init];
if(effects)
{
for(NSInteger index = 0; index < 10; index++)
{
[effects addObject: [NSString stringWithFormat: @"Back%i.jpg", index];
}
}
根據你需要的數組的大小,你可以利用NSArray的非常簡單的子類。您只需要重寫兩種方法,即count
和objectAtIndex:
。
@interface StringArray : NSArray
@end
@implementation StringArray
-(NSUInteger)count {
return 9;
}
-(id)objectAtIndex:(NSUInteger)index {
return [NSString stringWithFormat:@"Back%ld.jpg", (long)(index +1)];
}
@end
要使用它,只需實例吧:
NSArray *stringArray = [[StringArray alloc] init];
NSLog(@"Array: %@", stringArray);
該解決方案使用的代碼一些額外的線路相比,通過構建陣列循環,但上檔,就應該少用大數組的內存。
像這樣的陣列可以是在某些情況下,作爲陣列控制器模型對象是有用的。
我不知道它將如何撐起一個代碼審查,有些人可能會發現,硬編碼的大小和格式字符串可能需要一些工作。
唉,*非埃及*大括號?我知道這是愚人節,但認真,男人? ;) – CodaFi
我只是婉創造一個srollView這些圖像 –
這聽起來像比你上面問,小麗一個不同的問題。 –