Objective-C: Scope problems cellForRowAtIndexPath

Posted by Mr. McPepperNuts on Stack Overflow See other posts from Stack Overflow or by Mr. McPepperNuts
Published on 2010-06-10T19:32:18Z Indexed on 2010/06/10 20:33 UTC
Read the original article Hit count: 315

Filed under:
|

How would I set each individual row in cellForRowAtIndexPath to the results of an array populated by a Fetch Request? (Fetch Request made when button is pressed.)

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    //  ... set up cell code here ...
    cell.textLabel.text = [results objectAtIndex:indexPath valueForKey:@"name"];

}

warning: 'NSArray' may not respond to '-objectAtIndexPath:'

Edit:

- (NSArray *)SearchDatabaseForText:(NSString *)passdTextToSearchFor{
    NSManagedObject *searchObj;
    XYZAppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];

    NSManagedObjectContext *managedObjectContext = appDelegate.managedObjectContext;
    NSFetchRequest *request = [[NSFetchRequest alloc] init]; 
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name contains [cd] %@", passdTextToSearchFor]; 
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"Entry" inManagedObjectContext:managedObjectContext]; 
    NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:NO]; 
    NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];   

    [request setSortDescriptors:sortDescriptors];
    [request setEntity: entity]; 
    [request setPredicate: predicate]; 

    NSError *error;

    results = [managedObjectContext executeFetchRequest:request error:&error];
//  NSLog(@"results %@", results);

    if([results count] == 0){
        NSLog(@"No results found");
        searchObj = nil;
        self.tempString = @"No results found.";
    }else{
        if ([[[results objectAtIndex:0] name] caseInsensitiveCompare:passdTextToSearchFor] == 0) {
            NSLog(@"results %@", [[results objectAtIndex:0] name]);
            searchObj = [results objectAtIndex:0];
        }else{
            NSLog(@"No results found");
            self.tempString = @"No results found.";
            searchObj = nil;
        }       
    }

    [tableView reloadData]; 

    [request release];
    [sortDescriptors release];

    return results;
}

- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar{
    textToSearchFor =  mySearchBar.text;
    results = [self SearchDatabaseForText:textToSearchFor];
    self.tempString = [myGlobalSearchObject valueForKey:@"name"];   
    NSLog(@"results count: %d", [results count]);
    NSLog(@"results 0: %@", [[results objectAtIndex:0] name]);
    NSLog(@"results 1: %@", [[results objectAtIndex:1] name]);
}
@end

Console prints:

2010-06-10 16:11:18.581 XYZApp[10140:207] results count: 2
2010-06-10 16:11:18.581 XYZApp[10140:207] results 0: BB Bugs
2010-06-10 16:11:18.582 XYZApp[10140:207] results 1: BB Annie
Program received signal:  “EXC_BAD_ACCESS”.
(gdb) 

Edit 2:

BT:

#0  0x95a91edb in objc_msgSend ()
#1  0x03b1fe20 in ?? ()
#2  0x0043cd2a in -[UITableViewRowData(UITableViewRowDataPrivate) _updateNumSections] ()
#3  0x0043ca9e in -[UITableViewRowData invalidateAllSections] ()
#4  0x002fc82f in -[UITableView(_UITableViewPrivate) _updateRowData] ()
#5  0x002f7313 in -[UITableView noteNumberOfRowsChanged] ()
#6  0x00301500 in -[UITableView reloadData] ()
#7  0x00008623 in -[SearchViewController SearchDatabaseForText:] (self=0x3d16190, _cmd=0xf02b, passdTextToSearchFor=0x3b29630) 
#8  0x000086ad in -[SearchViewController searchBarSearchButtonClicked:] (self=0x3d16190, _cmd=0x16492cc, searchBar=0x3d2dc50)
#9  0x0047ac13 in -[UISearchBar(UISearchBarStatic) _searchFieldReturnPressed] ()
#10 0x0031094e in -[UIControl(Deprecated) sendAction:toTarget:forEvent:] ()
#11 0x00312f76 in -[UIControl(Internal) _sendActionsForEventMask:withEvent:] ()
#12 0x0032613b in -[UIFieldEditor webView:shouldInsertText:replacingDOMRange:givenAction:] ()
#13 0x01d5a72d in __invoking___ ()
#14 0x01d5a618 in -[NSInvocation invoke] ()
#15 0x0273fc0a in SendDelegateMessage ()
#16 0x033168bf in -[_WebSafeForwarder forwardInvocation:] ()
#17 0x01d7e6f4 in ___forwarding___ ()
#18 0x01d5a6c2 in __forwarding_prep_0___ ()
#19 0x03320fd4 in WebEditorClient::shouldInsertText ()
#20 0x0279dfed in WebCore::Editor::shouldInsertText ()
#21 0x027b67a5 in WebCore::Editor::insertParagraphSeparator ()
#22 0x0279d662 in WebCore::EventHandler::defaultTextInputEventHandler ()
#23 0x0276cee6 in WebCore::EventTargetNode::defaultEventHandler ()
#24 0x0276cb70 in WebCore::EventTargetNode::dispatchGenericEvent ()
#25 0x0276c611 in WebCore::EventTargetNode::dispatchEvent ()
#26 0x0279d327 in WebCore::EventHandler::handleTextInputEvent ()
#27 0x0279d229 in WebCore::Editor::insertText ()
#28 0x03320f4d in -[WebHTMLView(WebNSTextInputSupport) insertText:] ()
#29 0x0279d0b4 in -[WAKResponder tryToPerform:with:] ()
#30 0x03320a33 in -[WebView(WebViewEditingActions) _performResponderOperation:with:] ()
#31 0x03320990 in -[WebView(WebViewEditingActions) insertText:] ()
#32 0x00408231 in -[UIWebDocumentView insertText:] ()
#33 0x003ccd31 in -[UIKeyboardImpl acceptWord:firstDelete:addString:] ()
#34 0x003d2c8c in -[UIKeyboardImpl addInputString:fromVariantKey:] ()
#35 0x004d1a00 in -[UIKeyboardLayoutStar sendStringAction:forKey:] ()
#36 0x004d0285 in -[UIKeyboardLayoutStar handleHardwareKeyDownFromSimulator:] ()
#37 0x002b5bcb in -[UIApplication handleEvent:withNewEvent:] ()
#38 0x002b067f in -[UIApplication sendEvent:] ()
#39 0x002b7061 in _UIApplicationHandleEvent ()
#40 0x02542d59 in PurpleEventCallback ()
#41 0x01d55b80 in CFRunLoopRunSpecific ()
#42 0x01d54c48 in CFRunLoopRunInMode ()
#43 0x02541615 in GSEventRunModal ()
#44 0x025416da in GSEventRun ()
#45 0x002b7faf in UIApplicationMain ()
#46 0x00002578 in main (argc=1, argv=0xbfffef5c) at /Users/default/Documents/iPhone Projects/XYZApp/main.m:14

© Stack Overflow or respective owner

Related posts about iphone

Related posts about objective-c