Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

"Missing context for method declaration" for overridden description method

Tags:

objective-c

Am getting a "Missing context for method declaration" for my overridden description method. Can you tell what's wrong with the code?

#import <Foundation/Foundation.h> #import "BNRItem.h"  int main(int argc, const char * argv[]) {    @autoreleasepool {        // Create a mutable array object, store its address in items variable     NSMutableArray *items = [[NSMutableArray alloc]init];      BNRItem *p = [[BNRItem alloc]init];     NSLog(@"%@ %@ %@ %d", [p itemName], [p dateCreated], [p serialNumber], [p valueInDollars]);      // This creates a new NSString, "Red Sofa" and gives it to the BNRItem     [p setItemName:@"Red Sofa"];      // This creates a new NSString, "A1B2C" and gives it to the BNRItem     [p setSerialNumber:@"A1B2C"];      // We send the value 100 to be used as the valueInDollars of this BNRItem     [p setValueInDollars:100];      // Destroy the array pointed to by items     items = nil;    }     return 0; }  -(NSString *)description // Missing context for method declaration {   NSString *descriptionString =   [[NSString alloc]initWithFormat:@"%@ (%@): Worth $%d, recorded on %@",    itemName;    serialNumber;    valueInDollars;    dateCreated];  return descriptionString;  } 

BNRItem.m

#import "BNRItem.h"  @implementation BNRItem  -(void)setItemName:(NSString *)str {   itemName = str; }  -(NSString *)itemName {   return itemName; }  -(void)setSerialNumber:(NSString *)str {   serialNumber = str; }  -(NSString *)serialNumber {   return serialNumber; }  -(void)setValueInDollars:(int)i {   valueInDollars = i; }  -(int)valueInDollars {   return valueInDollars; }  -(NSDate *)dateCreated {   return dateCreated; }  -(NSString *)description {   NSString *descriptionString =    [[NSString alloc]initWithFormat:@"%@ (%@): Worth $%d, recorded on %@",    itemName,    serialNumber; // Expected "]"    valueInDollars, // Expression result unused    dateCreated]; //Extraneous "]" before ";"    return descriptionString; }   @end 
like image 386
pdenlinger Avatar asked Apr 26 '12 21:04

pdenlinger


1 Answers

Your method appears to be free floating inside main.m. An instance method needs to be placed inside the implementation section of a class. (between @implementation and @end).

My guess is that you should move that code into BNRItem.m.

like image 91
jrturton Avatar answered Oct 01 '22 11:10

jrturton