私は非常に簡単なプロジェクトを持っています。非常に疲れた。 NSTableViewにテキストを読み込むだけです。それでおしまい。しかし、新しいウィンドウとコントローラを使用しています。これは「改訂版」と呼ばれています。NSTableviewクラッシュを伴う新しいNSWindow
新しいウィンドウがアクティブになると、すぐにクラッシュするか、ロックされます。コンソールにエラーはありません。バックグラウンドで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];
}
Revisions.h
#import <Cocoa/Cocoa.h>
@interface Revisions : NSWindowController
{
IBOutlet NSTableView *quicktimesList;
IBOutlet NSTableView *unusedDataList;
}
@end
Revisions.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
"メモリ管理と関係していることは分かっています..."どのような理由で? –