gpt4 book ai didi

objective-c - 带有 NSTableview 的新 NSWindow 崩溃

转载 作者:行者123 更新时间:2023-12-03 17:42:41 29 4
gpt4 key购买 nike

我有一个非常简单的项目。极度淡化。它所做的只是将一些文本加载到 NSTableView 中。就是这样。但它使用了一个新的窗口和 Controller ,称为“修订版”。

一旦新窗口变为事件状态,它就会崩溃或锁定。控制台中没有错误。如果它位于后台,即 AppDelegate 窗口后面,则它似乎可以很好地加载信息。我可以看到该表已完美填充。但是,一旦我单击窗口并将其激活,它就会崩溃/锁定。

这让我发疯。我知道它与内存管理有关,但我不知道在哪里、如何或为什么。

注意,我使用的是 XCode 4.2,不再有任何发布(当然,除非我更改一些设置)。

所有连接

AppDelegate.h

#import <Cocoa/Cocoa.h>
@interface AppDelegate : NSObject <NSApplicationDelegate>
@property (assign) IBOutlet NSWindow *window;
@end

AppDelegate.m

#import "AppDelegate.h"
#import "Revisions.h"

@implementation AppDelegate

@synthesize window = _window;

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
Revisions *rev = [[Revisions alloc] initWithWindowNibName:@"Revisions"];
[rev loadWindow];
}

修订.h

#import <Cocoa/Cocoa.h>

@interface Revisions : NSWindowController
{
IBOutlet NSTableView *quicktimesList;
IBOutlet NSTableView *unusedDataList;
}

@end

修订.m

#import "Revisions.h"

@implementation Revisions


- (id)initWithWindow:(NSWindow *)window
{
self = [super initWithWindow:window];
if (self) {
// Initialization code here.
}

return self;
}

- (void)windowDidLoad
{
[super windowDidLoad];
// Implement this method to handle any initialization after your window controller's window has been loaded from its nib file.
}


- (NSInteger)numberOfRowsInTableView:(NSTableView *)aTableView
{
NSLog(@"Creating number of rows.");
return 10;
}

- (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex
{
NSLog(@"Starting Loop.");
NSString *words = [[NSString alloc] initWithFormat:@"Row %i", rowIndex];
NSLog(@"Looping %i", (int)rowIndex);
return words;
}

@end

最佳答案

好的。在处理 Xcode 4.2 中潜在的内存泄漏时,我将向您提供一些提示。

  1. 在为 Mac 编写软件时,建议在build设置中启用垃圾收集。只需在build设置的搜索栏中搜索“垃圾收集”并将其设置为“必需”即可。

  2. 如果您的项目中存在内存泄漏,只需按“产品”菜单并点击“分析”即可。这正如菜单项所述,它会分析您的项目是否存在潜在的内存泄漏,并帮助您追踪它们。

希望这有帮助!

关于objective-c - 带有 NSTableview 的新 NSWindow 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8497195/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com