NSUrl POST Ошибка - PullRequest
       8

NSUrl POST Ошибка

1 голос
/ 28 декабря 2011

У меня есть страница, которая получает почтовый индекс пользователя, отправляет эти данные на страницу php, а затем получает данные через JSON. На этой странице выдается сообщение об ошибке:

2011-12-27 15: 17: 49.919 BusinessManager [3595: 20b] * Завершение работы приложения из-за необработанного исключения «NSInvalidArgumentException», причина: «* - [NSConcreteData isFileURL]: нераспознанный селектор отправлен в экземпляр 0x4751490 '

Код:

    - (id)initWithNibName:(NSString *)SearchZip bundle:(NSBundle *)nibBundleOrNil {
if (self = [super initWithNibName:SearchZip bundle:nibBundleOrNil]) {
    // Custom initialization
}
return self;
}


- (IBAction) searchzip: (id) sender
{
NSString *post =[NSString stringWithFormat:@"zipcode=%@",zipField.text];

NSString *hostStr =    @"https://www.mysite.com/searchzip.php?";
hostStr = [hostStr stringByAppendingString:post];
NSData *dataURL =  [NSData dataWithContentsOfURL: [ NSURL URLWithString: hostStr ]];

NSString *jsonData = [[NSString alloc] initWithContentsOfURL:dataURL];


self.zipArray = [jsonData JSONValue]; 

[jsonData release];
}
- (void)viewDidLoad {
[super viewDidLoad];

}



- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [zipArray count];
}


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:  (NSIndexPath *)indexPath {
 NSDictionary *infoDictionary = [self.zipArray objectAtIndex:indexPath.row];
 static NSString *Prospects = @"agencyname";

 UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:Prospects];
 if (cell == nil) {
 cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:Prospects]  autorelease];
 }

 // setting the text
 cell.text = [infoDictionary objectForKey:@"agencyname"];   
 self.navigationItem.title = @"Zip Search";

 // Set up the cell
 return cell;

 }

1 Ответ

1 голос
/ 28 декабря 2011

Вы пытаетесь передать экземпляр NSData в -initWithContentsOfURL:, чтобы создать jsonData экземпляр NSString.

Я собираюсь превратить ваш метод.Обратите внимание, что я полностью удалил создание объекта NSData и переименовал переменные, чтобы было понятнее.

- (IBAction)searchzip:(id)sender
{
    NSString *post = [NSString stringWithFormat:@"zipcode=%@", zipField.text];
    NSString *hostString = @"https://www.mysite.com/searchzip.php?";

    // Append string and add percent escapes
    hostString = [[hostString stringByAppendingString:post] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    NSURL *hostURL = [NSURL URLWithString:hostString];
    NSString *jsonString = [[NSString alloc] initWithContentsOfURL:hostURL];
    self.zipArray = [jsonString JSONValue]; 
    [jsonString release];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...