Xcode4 未使用变量问题

Xcode4 未使用变量问题,xcode4,Xcode4,我在实现文件中有以下代码: #import "Possession.h" @implementation Possession @synthesize possessionName,serialNumber, valueInDollars, dateCreated; + (id)randomPossession { // Create an array of three adjectives NSArray *randomAdjectiveList = [NSArray ar

我在实现文件中有以下代码:

#import "Possession.h"


@implementation Possession
@synthesize possessionName,serialNumber, valueInDollars, dateCreated; 

+ (id)randomPossession
{
  // Create an array of three adjectives
    NSArray *randomAdjectiveList = [NSArray arrayWithObjects:@"Fluffy",
                                @"Rusty",
                                @"Shiny", nil];

    // Create an array of three nouns
    NSArray *randomNounList = [NSArray arrayWithObjects:@"Bear", 
                           @"Spork",
                           @"Mac", nil];

    // Get the index of a random adjective/noun from the lists
    // Note: The % operator, called the modulo operator, gives
    // you the remainder. So adjectiveIndex is a random number
    // from 0 to 2 inclusive.
    unsigned long adjectiveIndex = rand() % [randomAdjectiveList count];
    unsigned long nounIndex = rand() % [randomNounList count];

     NSString *randomName = [NSString stringWithFormat:@"%@ %@",
                        [randomAdjectiveList objectAtIndex:adjectiveIndex],
                        [randomNounList objectAtIndex:nounIndex]];

     int randomValue = rand() % 100;

     NSString *randomSerialNumber = [NSString stringWithFormat:@"%c%c%c%c",
                                'O' + rand() % 10,
                                'A' + rand() % 26,
                                'O' + rand() % 10,
                                'A' + rand() % 26,
                                'O' + rand() % 10];

     // Once again, ignore the memory problems with this method
     Possession *newPossession =
     [[self alloc] initWithPossessionName:randomName 
                      valueInDollars:randomValue 
                        serialNumber:randomSerialNumber];

     return newPossession;

     return [newPossession autorelease];


}

 - (id) initWithPossessionName:(NSString *)name
           valueInDollars:(int)value
             serialNumber:(NSString *)sNumber
{
    // Call the superclass's designated initializer
    [super init];

    // Give the instance variables initial values
    [self setPossessionName:name];
    [self setSerialNumber:sNumber];
    [self setValueInDollars:value];
    dateCreated = [[NSDate alloc] init];

    // Return the address of the newly initialized object
    return self;


 }

- (id) init
{
    return [self initWithPossessionName:@"Possession"
                     valueInDollars:0
                       serialNumber:@""];
}

- (NSString *)description;
{
     NSString *descriptionString = 
     [[NSString alloc] stringWithFormat:@"%@ (%@): Worth $%d, recorded on %@",
     possessionName,
     serialNumber,
     valueInDollars,
     dateCreated];
}


- (void) dealloc
{
    [possessionName release];
    [serialNumber release];
    [dateCreated release];
    [super dealloc];
}




@end
对于descriptionString,我得到一个未使用的变量错误,对于读取“dateCreated]”的行,我得到一个线程1:程序接收信号:“SIGABRT”错误,该错误打开调试器。对于紧跟其后的行,我接收到一个控件到达非void函数末尾错误

以下是头文件:

#import <Foundation/Foundation.h>


@interface Possession : NSObject {
    NSString *possessionName;
    NSString *serialNumber;
    int valueInDollars;
    NSDate *dateCreated;
}

 + (id)randomPossession;

 - (id)initWithPossessionName:(NSString *)name
          valueInDollars:(int)value
            serialNumber:(NSString *)number;

 - (id) init;

 @property (nonatomic, copy) NSString *possessionName;
 @property (nonatomic, copy) NSString *serialNumber;
 @property (nonatomic) int valueInDollars;
 @property (nonatomic, readonly) NSDate *dateCreated;

 @end
#导入
@接口占用:NSObject{
NSString*占有名称;
NSString*序列号;
印度商贩;
NSDate*创建日期;
}
+(id)非法占有;
-(id)initWithOccessionName:(NSString*)名称
valueInDollars:(int)值
serialNumber:(NSString*)编号;
-(id)init;
@属性(非原子,副本)NSString*ObsessionName;
@属性(非原子,副本)NSString*序列号;
@不动产(非原子)整数估值器;
@属性(非原子,只读)NSDate*dateCreated;
@结束
以下是主文件:

#import <Foundation/Foundation.h>
#import "Possession.h"

int main (int argc, const char * argv[])
{

    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

    // Create a mutable array, store its address in items variable
    NSMutableArray *items = [[NSMutableArray alloc] init];

    for(int i = 0; i < 10; i++) {
        Possession *p = [Possession randomPossession];
        [items addObject:p];
    }

   for (int i = 0; i < [items count]; i++)
        NSLog(@"%@", [items objectAtIndex:i]);

   [items release];

    // Don't leave items pointed at freed memory!
    items = nil;

    [pool drain];
    return 0;
    }
#导入
#输入“管有权.h”
int main(int argc,const char*argv[]
{
NSAutoreleasePool*池=[[NSAutoreleasePool alloc]init];
//创建一个可变数组,将其地址存储在变量items中
NSMutableArray*项=[[NSMutableArray alloc]init];
对于(int i=0;i<10;i++){
占有*p=[占有随机占有];
[项目添加对象:p];
}
对于(int i=0;i<[项目计数];i++)
NSLog(@“%@,[items objectAtIndex:i]);
[项目发布];
//不要将项目指向已释放的内存!
项目=无;
[泳池排水沟];
返回0;
}

对于描述方法

  • 局部变量descriptionString在创建之前从未使用过
  • 这是一个非void方法,您永远不会返回任何内容
  • SIGABRT很可能是由OccessionName、serialNumber、valueInDollars和dateCreated中的一个为零引起的
    您的标题声称您有一个问题,但您所做的只是转储三大块代码,不努力隔离问题,甚至懒得问一个问题?您读过实现文件后面的这篇文章吗?“对于descriptionString,我得到一个未使用的变量错误,对于读取“dateCreated]”的行,我得到一个线程1:程序接收信号:“SIGABRT”错误,它打开调试器。对于紧跟其后的行,我收到一个控件到达非void函数错误的末尾。”