2010-09-26 3 views
0

Я создал делегат для моего класса «HotRequest», но у меня проблемы с его реализацией. Код для моего класса ниже. Есть идеи? БлагодаряПроблема с персонализированным телефоном iPhone

HotRequest.h

#import <Foundation/Foundation.h> 

@protocol HotRequestDelegate; 

@interface HotRequest : NSObject { 
    NSString *requestString; 
    id <HotRequestDelegate> delegate; 
} 

@property (nonatomic, retain) NSString *requestString; 
@property (nonatomic, assign) id <HotRequestDelegate> delegate; 

- (id)initWithRequestOptions:(NSDictionary*)dict; 

@end 

@protocol HotRequestDelegate <NSObject> 
@required 
- (void)requestComplete; 
@end 

HotRequest.m

#import "HotRequest.h" 

@implementation HotRequest 

@synthesize requestString, delegate; 

- (id)initWithRequestOptions:(NSDictionary*)dict { 
    if ((self = [super init])) { 
     for (NSString *key in [dict allKeys]) { 
      requestString = [NSString stringWithFormat:@"%@&%@=%@", requestString, key, [dict objectForKey:key]]; 
     } 
     NSLog(@"%@", requestString); 
    } 
    [delegate requestComplete]; 
    return self; 
} 

@end 

WelcomeViewController.h

#import <UIKit/UIKit.h> 
#import "HotRequest.h" 

@interface WelcomeViewController : UIViewController <HotRequestDelegate>{ 
    HotRequest *myRequest; 
} 

@property (nonatomic,retain) HotRequest *myRequest; 

@end 

WelcomeViewController.m

#import "WelcomeViewController.h" 
#import "HotRequest.h" 

@implementation WelcomeViewController 
@synthesize myRequest; 
- (void)viewDidLoad { 
    [super viewDidLoad]; 
    NSDictionary *mydict = [[NSDictionary alloc] initWithObjectsAndKeys:@"2", @"1", @"4", @"3", nil]; 
    myRequest = [[HotRequest alloc] initWithRequestOptions:mydict]; 
    [[self myRequest] setDelegate:self]; 
} 

- (void)requestComplete { 
    NSLog(@"request complete"); 
} 
@end 

ответ

5

delegate еще в initWithRequestOptions:nil. Вы пытаетесь вызвать метод делегата перед установкой делегата.

+0

Не нуль, на самом деле - неопределенный, что хуже, так как это вызовет сбой. – Echelon

+1

@ Эчелон: вы ошибаетесь. При распределении объектов все переменные экземпляра обнуляются. –

+0

Я знал, что это должно быть что-то глупое, что я делаю. Большое спасибо. – Jack

 Смежные вопросы

  • Нет связанных вопросов^_^