cheers adrian, that was it. i changed it to the following ...
- (BOOL) startExecution:(id<QCPlugInContext>)context
{
particles = [NSMutableDictionary new];
return YES;
}
- (BOOL) execute:(id<QCPlugInContext>)context atTime:(NSTimeInterval)time
withArguments:(NSDictionary*)arguments
{
NSLog(@"Amount: %i", self.inputAmount);
//[particles removeAllObjects];
for(int i=0;i<self.inputAmount;i++){
NSDictionary *dictionary = [NSDictionary
dictionaryWithObjectsAndKeys:
[NSString stringWithFormat:@"%i", rand()], @"x",
[NSString stringWithFormat:@"%i", rand()], @"y",
[NSString stringWithFormat:@"%i", rand()], @"z",
[NSString stringWithFormat:@"%i", rand()], @"random value",
nil];
[particles setObject:dictionary forKey:[NSString
stringWithFormat:@"%i",i]];
}
//[self.outputParticles setDictionary:particles];
[particles retain];
self.outputParticles = particles;
return YES;
}
- (void) stopExecution:(id<QCPlugInContext>)context
{
[particles release];
}
why do i have to retain it? is it because of the "particles =
[NSMutableDictionary new];"? do i have to release it one more time, or ist
correct now?
On Sep 28, 2010, at 12:25 PM, Adrian Ward wrote:
>
> Are you sure you're retaining your particles dictionary so its not being
> autoreleased? I can't see where you've created it so cannot be certain. This
> sort of mistake often causes these sorts of crashes (works initially, doesn't
> shortly after).
>
> An easier and probably safer approach would be to just set your
> outputParticles property directly to a new dictionary that you create each
> time, rather than trying to maintain one mutable object over time, and then
> having to retain it, etc.
>
> And finally, to answer your source comment, no they're not the same - the
> first one changes the contents of your self.outputParticles dictionary to
> match those of particles. The second one assigns (depending on your @property
> declaration) the object directly to the property, which is what you're
> wanting.
>
> Try this:
>
> NSMutableDictionary* particles = [NSMutableDictionary dictionary];
>
> for(int i=0;i<self.inputAmount;i++){
> NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:
>
> [NSString stringWithFormat:@"%i", rand()], @"x",
>
> [NSString stringWithFormat:@"%i", rand()], @"y",
>
> [NSString stringWithFormat:@"%i", rand()], @"z",
>
> [NSString stringWithFormat:@"%i", rand()], @"random value",
> nil];
> [particles setObject:dictionary forKey:[NSString
> stringWithFormat:@"%i",i]];
> }
> self.outputParticles = particles;
>
>
>
>
> Best,
>
> A.
>
>
> On 28 Sep 2010, at 10:57, Stefan Kainbacher, NEON GOLDEN wrote:
>
>>
>> hello together,
>>
>> i would like to build a plugin that has one input (number) and an output
>> (structure).
>>
>> if i change the the number on the input it should give me a a dictionary or
>> array with n=inputNumber elements. it works the first time and hands out the
>> structure in qc, but when i change the input qc crashes. whats wrong? what
>> do i miss?
>>
>>
>> - (BOOL) execute:(id<QCPlugInContext>)context atTime:(NSTimeInterval)time
>> withArguments:(NSDictionary*)arguments
>> {
>>
>> NSLog(@"Amount: %i", self.inputAmount);
>> //[particles removeAllObjects];
>>
>> for(int i=0;i<self.inputAmount;i++){
>>
>> NSDictionary *dictionary = [NSDictionary
>> dictionaryWithObjectsAndKeys:
>>
>> [NSString stringWithFormat:@"%i", rand()], @"x",
>>
>> [NSString stringWithFormat:@"%i", rand()], @"y",
>>
>> [NSString stringWithFormat:@"%i", rand()], @"z",
>>
>> [NSString stringWithFormat:@"%i", rand()], @"random value",
>> nil];
>> [particles setObject:dictionary forKey:[NSString
>> stringWithFormat:@"%i",i]];
>> }
>>
>> [self.outputParticles setDictionary:particles]; // BTW: IS THIS THE
>> SAME? self.outputParticles = particles;
>>
>> return YES;
>> }
>>
>>
>> full source download (2.5 mb) available here:
>>
>> http://dl.dropbox.com/u/950822/Quartz%20Composer/NG%20ParticleSystem%2001.zip
>>
>>
>> cheers, stefan
>
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Quartzcomposer-dev mailing list ([email protected])
> Help/Unsubscribe/Update your Subscription:
> http://lists.apple.com/mailman/options/quartzcomposer-dev/stefan%40neongolden.net
>
> This email sent to [email protected]
--
NEW phone number: 0676 60 33 989
--
NEON GOLDEN
VISUAL EXPERIMENT
lab.neongolden.net
--
www.respectyourvj.net
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Quartzcomposer-dev mailing list ([email protected])
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/quartzcomposer-dev/archive%40mail-archive.com
This email sent to [email protected]