2016-05-19 7 views
-3

enter code hereを修正することができない[同じコードのユーチューブ画像] [1]私はそれが「予期せぬ」Objective-Cの構文エラー - 予期しない「@」/問題

を言う私のコードでエラーを取得しておきます@ @end」プログラムでも不足している 『』あなたは@end以下のコードを見てみると

があるが、答えは同じであるどんなに、私はそれを再入力し、 『行方不明@end』ここで

完全なコード

#import "MasterViewController.h" 
#import "DetailViewController.h" 

@interface MasterViewController() 

@end 

@implementation MasterViewController 
-(NSMutableArray *) objects 

{ 
if (!_objects){ 
_objects =[[NSMutableArray alloc]init]; 
} 
return _objects; 
} 

-(NSMutableArray *) results 
{ 
if (!_results) { 
_results =[[NSMutableArray alloc]init]; 
} 
return _results; 
} 
-(void)viewDidLoad 
{ 
[super viewDidLoad]; 

[self.objects addObject:@"Tabebuia yellow"]; 
[self.objects addObject:@"Prunus armeniaca"]; 
[self.objects addObject:@"Tabebuia rosea"]; 

} 
-(void)didReceiveMemoryWarning { 
[super didReceiveMemoryWarning]; 
// Dispose of any resources that can be recreated. 
} 
-(void) searchThroughData 
{ 
self.results= nil; 
NSPredicate * resultsPredicate = [NSPredicate predicateWithFormat:@"SELF contains [search]%@", self.searchBar.text]; 
self. results = [[ self.objects filteredArrayUsingPredicate:resultsPredicate]mutableCopy]; 
} 
-(void) searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText 
{ 
[self searchThroughData]; 
} 
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{ 
return 1; 
} 

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
if (tableView == self.tableView) 
{ 
return self.objects.count; 

}else{ 

[self searchThroughData]; 
return self.results.count; 
} 
} 
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
static NSString *CellIdentifier = @"Cell"; 
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 

if (!cell) 
{ 
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier: CellIdentifier]; 
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; 
} 

if (tableView == self.tableView){ 
cell.textLabel.text = self.objects[indexPath.row]; 

} else { 
cell.textLabel.text = self.results[indexPath.row]; 

} 
return cell; 
} 

    -(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ 
if (self.searchController.isActive) 
{ 

[self performSegueWithIdentifier:@"Showdetail" sender:self]; 

} 

-(void) PrepareForSegue:(UIStoryboardSegue *) segue sender:(id) sender 


if ([[ segue identifier] isEqualToString:@"ShowDetail"]) { 

NSString *object = nil; 
NSIndexPath *Indexpath = nil; 

if (self.UISearchController.isActive) 
{UISearchController 
    Indexpath = [[ self.searchController searchResultsTableView]indexPathForSelectedRow]; 
    object = self.results [Indexpath.row]; 
}else{ 

     Indexpath = [self.tableView indexPathForSelectedRow]; 
object = [[self.objects [Indexpath.row]; 



    [segue destinationViewController] setDetailLabelContents:object]; 
}} 

@end 

答えて

3
  1. あなたはprepareForSegue:sender:メソッドの最後に何の決算}を持っていません。書式設定とインデントが適切に行われます。
  2. あなたはtableView:didSelectRowAtIndexPath:メソッドの前に行(メソッドのコードだけ浮い外側を持っている。

あり{}の適切なペアリングする必要があり、コードは内部のメソッドまたは関数にする必要がある。

関連する問題