/ / Как да създадете и поддържате множество от същия обект в Цел-С? - цел-c, обект, скачане

Как да създадем и поддържаме множества от същия обект в Целка-С? - цел-c, обект, скачане

Опитвам се да оформя няколко предмета на топкатана екрана и се скачате наоколо. Имам работа добре за един, но имам проблеми с добавянето на още. В идеалния случай размерът на топките ще варира, но засега се опитвам да намеря две в масива, за да променя останалата част от кода.

Моят проблем е, че всичко се съставя и работи добре, но все още имам само една топка. Това е мястото, където подозирам, че възниква проблемът.

Аз също се чувствам като да правя това в ViewDidLoad е неправилно, но аз не съм сигурен къде всъщност принадлежи.

viewDidLoad:

- (void)viewDidLoad {
[super viewDidLoad];

balls = [[NSMutableArray alloc] init];
CGPoint newPos = CGPointMake(5,5);

for(int i = 0; i < 2; i++) {
[balls addObject:[[[Ball alloc] init] autorelease]];
}

[[balls objectAtIndex:1] setPosition:newPos];

[NSTimer scheduledTimerWithTimeInterval:1.0 / 30.0 target:self selector:@selector(onTimer) userInfo:nil repeats:YES];

}

- (void)onTimer
{
for(int i = 0; i < [balls count]; i++) {
Ball *b = [balls objectAtIndex:i];
[b update];
[(BallView *)self.view refresh:b];
}
}


- (void)refresh:(Ball *)aBall {
ball = aBall;
[self setNeedsDisplay];

}

Аз добавих моя "onTimer", помислих си, добавяйки закъснениетопри създаването на топките би било достатъчно, за да направи това неекранен. При всички актуализации се променя скоростта / посоката, базирана на акселерометъра / сблъсъците с ръба на екрана.

Отговори:

1 за отговор № 1

Всъщност и двете топки трябва да бъдат показани. Проверете координатите им, за да видите дали те се припокриват. От друга бележка, изглежда, че изпускате масив от топки, както и предмети с топка1 и топка2. Вие ги разпределяте, така че трябва да ги освободите в края на viewDidLoad, или ако използвате запазени свойства, само ги ремонтирайте, когато ги зададете, така че да бъдат запазени от свойствата.

Що се отнася до къде трябва да се намира кодът,viewDidLoad трябва да е добре, но помислете за поставянето на масив на масив в метода на init, който наричате, за да създадете своя ViewController, тъй като вероятно няма начин Вашият ViewController да работи без този масив да бъде създаден.