小编Pay*_*yn3的帖子

Objective-C:将选择器作为参数传递,然后调用它

我正在尝试将选择器作为参数传递并稍后执行.但是当我尝试使用控制台中的下一个错误调用选择器时,我收到SIGABRT错误:

因未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:' - [HttpRequest OnFinishConn:]:无法识别的选择器发送到实例0x7834c80'

HttpRequest.h

#import <Foundation/Foundation.h>

@interface HttpRequest : NSObject
{
    @private SEL onEndSel;
    @private NSMutableData* receivedData;
}
-(void) StartRequest:(NSString *) url 
          parameters:(NSString*) params 
            onEndSelector:(SEL) selector;
@end
Run Code Online (Sandbox Code Playgroud)

HttpRequest.m

#import "HttpRequest.h"

@implementation HttpRequest

-(void) StartRequest:(NSString *)url 
          parameters:(NSString*)params
          onEndSelector:(SEL)selector
{
    receivedData = [[NSMutableData alloc] init];
    NSMutableURLRequest *request = 
    [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:url]];
    [request setHTTPMethod:@"POST"];
    [request setHTTPBody:[params dataUsingEncoding:NSUTF8StringEncoding]];
    onEndSel = selector;
    NSURLConnection* conn = [[NSURLConnection alloc] initWithRequest:request delegate:self];


}
-(void) connectionDidFinishLoading:(NSURLConnection*) connection
{
    //NSLog([[NSString alloc] initWithData:receivedData encoding:NSUTF8StringEncoding]);
    [self performSelector:onEndSel withObject:[[NSMutableData alloc] …
Run Code Online (Sandbox Code Playgroud)

parameters arguments http objective-c selector

7
推荐指数
1
解决办法
1万
查看次数

标签 统计

arguments ×1

http ×1

objective-c ×1

parameters ×1

selector ×1