我有一个封面流程,它有3个不同的图像集。其中一个需要生成,我一直试图用一个线程来填充更大的图像选择。
以下是我的一些代码:
- (void) startSongThread {
[NSThread detachNewThreadSelector:@selector(songThreadMain) toTarget:self withObject:nil];
}
- (void) songThreadMain {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
int i = 0;
while(i < [items count] && ![[NSThread currentThread] isCancelled]) {
NSNumber *nsInt = [NSNumber numberWithInt:i];
if(![addedSongIndexes containsObject:nsInt]) [self setSongImage:nsInt];
i++;
}
[pool release];
}
- (void) stopSongThread {
if(![[NSThread currentThread] isCancelled]) [[NSThread currentThread] cancel];
}
当图像从一种类型变为另一种类型时,会调用stopSongThread方法。
如果我加载所有主图像,切换图像集然后切换回主集我总是得到EXC_BAD_ACCESS。
我尝试分配线程,但它只能工作一次..如果我让它加载而不是试图阻止它,它的效果很好。
任何帮助都会很棒,谢谢!
答案 0 :(得分:0)
这不是一个完整的答案。但是我决定将我的游戏计划稍微改变一下我使用该线程的方式。
基本上我用一个线程来创建一个新的空类来生成大拇指。当我填充封面流时,我检查线程类是否构建了一个图像。这似乎工作到目前为止我将继续调整它,直到它超级顺利!
由于