• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
nsoutlineview crashes
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

nsoutlineview crashes


  • Subject: nsoutlineview crashes
  • From: "Julius Eckert" <email@hidden>
  • Date: Fri, 22 Feb 2008 15:51:18 +0100

Hi,

i am implementing a datasource for an nsoutlineview to represent the
contents of a simple tree-structure defined by the following class
(simplified):

@interface TBCatalogNode : NSObject {
    NSMutableArray* children;
}
@property (readonly, retain) NSMutableArray* children;

(the array children is created by the constructor is definately never nil)

my data source looks like this:

-(CatalogRepresentation*) initWithNode:(TBCatalogNode*)rootNode {
    if (self = [super init]) {
        root = [rootNode retain];
    }
    return self;
}

- (id)outlineView:(NSOutlineView *)outlineView child:(NSInteger)index
ofItem:(id)item {
    TBCatalogNode* objItem = (item == nil) ? root : item;
    return [[[objItem children] objectAtIndex:index] retain];
}

- (NSInteger)outlineView:(NSOutlineView *)outlineView
numberOfChildrenOfItem:(id)item {
    return (item == nil) ? [[root children] count] : [[item children]
count];
}

- (BOOL)outlineView:(NSOutlineView *)outlineView isItemExpandable:(id)item {
    return ([self outlineView:outlineView numberOfChildrenOfItem:item] > 0);
}

- (id)outlineView:(NSOutlineView *)outlineView
objectValueForTableColumn:(NSTableColumn *)tableColumn byItem:(id)item {
    TBCatalogNode* objItem = (item == nil) ? root : item;
    return [[[objItem preset] info] objectForKey:@"ID"];  // this line gets
a string from a nsdictionary
}

This code works perfect with the garbage collection activated. when i
disable the gc it is working just at the begining, it shows the first level
under the root. when i click to expand an item it crashes -> debugger is
telling me at numberOfChildrenOfItem: - function.
I dont know what in the background is going on as I am pretty new to OSX. I
guess it is about some memory management, threading ?! I tried to retain
nearly everything, and I am running out of ideas.

The best solution would be to use the garbage collection of course, but I
need to load some bundles which are not compiled for gc. Is there a way to
load these bundles anyway? I tried to disable gc for the pointer of the
bundle, but that failed.

Thanks in advance
_______________________________________________

Cocoa-dev mailing list (email@hidden)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden

  • Follow-Ups:
    • Re: nsoutlineview crashes
      • From: Corbin Dunn <email@hidden>
  • Prev by Date: Re: Private Methods
  • Next by Date: Re: Simple Core Data Binding Question: NSTextField to Integer attribute
  • Previous by thread: Re: Private Methods
  • Next by thread: Re: nsoutlineview crashes
  • Index(es):
    • Date
    • Thread