我有一个团队(eveningRoster),我正在制作一个按钮将员工添加到其中。 该团队确实与当晚的事件有关系,但它是由 AC 代表的。
我想确保员工在添加之前不属于该团队,因此我在 MyDocument 中添加了一个方法来首先检查。它似乎有效,错误日志完整,但在我添加成员后,下次我单击任何内容时,程序崩溃。你猜为什么?代码如下:
-(IBAction)playsTonight:(id)sender
{
NSArray *selection = [fullRoster selectedObjects];
NSArray *existing = [eveningRoster arrangedObjects];
//Result will be within each loop.
BOOL result;
//noDuplicates will stay YES until a duplicate is found.
BOOL noDuplicates = YES;
//For the loop:
int count;
for (count = 0; count < [selection count]; count++){
result = [existing containsObject:[selection objectAtIndex:count]];
if (result == YES){
NSLog(@"Duplicate found!");
noDuplicates = NO;
}
}
if (noDuplicates == YES){
[eveningRoster addObjects:[fullRoster selectedObjects]];
NSLog(@"selected objects added.");
[eveningTable reloadData];
NSLog(@"Table reloaded.");
}
[selection release];
[existing release];
return;
}
最佳答案
假设 -selectedObjects 和 -arrangedObjects 是标准 NSController 方法,这些方法将返回自动释放的对象(或者至少是您不负责释放的对象)。如果您删除方法中的最后两个 -release 调用,它应该可以解决该问题。
关于objective-c - 应用自定义逻辑后,下一个 UI 操作会使我的应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2440946/