2010-09-23 75 views
0

我在寫一個谷歌閱讀器應用程序,並試圖用UISwitch創建設置表視圖。以下是完整的代碼序列:發送無法識別的選擇器。 Objective-C錯誤

@implementation Settings 
@synthesize rowImage; 
@synthesize ViewPushed; 
@synthesize alreadySignedIn; 
@synthesize syncStartupSwitch; 
@synthesize confirmMarkSwitch; 
@synthesize landscapeModeSwitch; 
@synthesize appBadgeSwitch; 
@synthesize fontSwitch; 
@synthesize newItemsSwitch; 

#pragma mark - 
#pragma mark View lifecycle 
static SEL syncStartup; 
static SEL markAsReadConfirm; 
static SEL landscapeMode; 
static SEL appBadge; 
static SEL fontSettings; 
static SEL newItemsFirstSel; 

+(void) initialize{ 
    syncStartup = @selector(syncAtStartup:); 
    markAsReadConfirm = @selector (confirmMarkAsRead:); 
    landscapeMode = @selector (landscapeMode:); 
    appBadge = @selector (appBadgeSetting:); 
    fontSettings = @selector (largeFontSetting:); 
    newItemsFirstSel = @selector (newItemFirst:); 


} 

-(void) newItemFirst:(id)sender { 
    if ([sender isOn]) { 
     newItemsSwitch = YES; 
    }else { 
     newItemsSwitch = NO; 
    } 

} 
-(void) syncAtStartup:(id)sender { 
    if ([sender isOn]) { 
     syncStartupSwitch = YES; 

    }else { 
     syncStartupSwitch = NO; 

    } 
} 

-(void) confirmMarkAsRead:(id)sender{ 
    if ([sender isOn]) { 
     confirmMarkSwitch = YES; 

    }else { 
     confirmMarkSwitch = NO; 
     [self.tableView reloadData]; 
    } 
} 

-(void) landscapeMode:(id)sender{ 
    if([sender isOn]) { 
     landscapeModeSwitch = YES; 

    }else { 
     landscapeModeSwitch = NO; 
    } 
} 

-(void) appBadgeSetting:(id)sender{ 
    if([sender isOn]) { 
     appBadgeSwitch = YES; 

    }else { 
     appBadgeSwitch = NO; 
    } 

} 

-(void) largeFontSetting:(id)sender{ 
    if ([sender isOn]) { 
     [UIFont systemFontOfSize:32]; 
     fontSwitch = YES; 
     NSLog(@"YES"); 
    }else { 
     fontSwitch = NO; 
     NSLog(@"YES"); 
    } 

} 
/* 
-(void) saveLastViewedItem{ 
    [plistData setValue:[[[UIApplication sharedApplication]delegate]currentItemID]forKey:keyLastItemID]; 
    [plistData setValue:[[[[[[[UIApplication sharedApplication]delegate]navController]navController]topViewController]delegate]tag]forKey:keyLastItemTag]; 
} 

-(void) save { 
    [self saveLastViewedItem]; 
    BOOL success = [plistData writeToFile:[docsPath stringByAppendingPathComponent:plistName] atomically:YES]; 
    if (!success) { 
     NSLog(@"FAILED saving plist"); 
    }else { 
     dbg_s(@"saved data:%@ to file: %@", plistData, [docsPath stringByAppendingPathComponent:plistName]); 

     } 

} 
-(void) load{ 
    dbg(@"loading plist data from path: %@", [docsPath stringByAppendingPathComponent:plistName]); 
    plistData = [[NSMutableDictionary dictionaryWithContentsOfFile:[docsPath stringByAppendingPathComponent:plistName]]retain]; 
     if(!plistData){ 
      NSLog(@"FAILED loading plist"); 
      plistData = [[NSMutableDictionary dictionary] retain]; 
     } 
    dbg_s(@"Loaded plist data", plistData); 
    dbg_s("%@", plistData); 
    [self removeDeprecatedProperties]; 
    [self loadFeedList]; 
} 

-(void) removeDeprecatedProperties{ 
    for (NSString * deprecatedProperty in deprecatedProperties){ 
     [plistData removeObjectForKey:deprecatedProperty]; 
    } 
} 

-(void) reloadFeedList{ 
    [self loadFeedList]; 
    [self setUIElements]; 
} 

-(NSArray *) loadFeedList { 
    NSString *contents = [NSString stringWithContentsOfFile:[docsPath stringByAppendingPathComponent:@"tagList"]encoding:NSUTF8StringEncoding error:nil]; 
    id result; 
    if(!contents) { 
     dbg(@"no feed list loaded"); 
     result = nil; 
    }else { 
     NSArray *originalList = [contents componentsSeparatedByString:@"\n"]; 
     NSMutableArray *feedList = [NSMutableArray arrayWithCapacity:[originalList count]]; 
     for (NSString *feed in originalList) { 
      NSString *trimmedFeed = [feed stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; 
      if([feed length] > 0){ 
       [feedList addObject:trimmedFeed]; 
      } 
     } 
     result = feedList; 
    } 
    [possibleTags release]; 
    possibleTags = [result retain]; 
    return result; 
} 

-(NSArray *)feedList { 
    return possibleTags; 
} 

-(NSArray *) activeTagList { 
    id tags = [self tagList]; 
    NSArray *result = [NSMutableArray arrayWithCapacity:[tags count]]; 
    for (NSString *tag in tags) { 
     if([possibleTags containsObject:tag]) { 
      [result arrayByAddingObject:tag]; 
     } 
    } 
    return result; 
} 

-(id) init{ 
    self =[super init]; 
    plistName = @"config.plist"; 
    if (openLinksInSegmentValues == nil) 
     openLinksInSegmentValues = [[NSArray alloc] initWithObjects:openLinksInAskMeValue, openLinksInSafariValue, openLinksIniReaderValue, nil]; 

    if (deprecatedProperties == nil) 
     deprecatedProperties = [[NSArray alloc] initWithObjects:@"openInSafari", nil]; 

    [self docsPath]; 
    [self load]; 
    return self; 
} 
*/ 

- (void)viewDidLoad { 

    syncSwitch=[[[UISwitch alloc] initWithFrame:CGRectZero]autorelease]; 
    readSwitch=[[[UISwitch alloc] initWithFrame:CGRectZero]autorelease]; 
    landscapeSwitch=[[[UISwitch alloc] initWithFrame:CGRectZero]autorelease]; 
    badgeSwitch=[[[UISwitch alloc] initWithFrame:CGRectZero]autorelease]; 
    largeFontSwitch=[[[UISwitch alloc] initWithFrame:CGRectZero]autorelease]; 
    newItemsFirstSwitch =[[[UISwitch alloc] initWithFrame:CGRectZero]autorelease]; 


     //switcher = [[[UISwitch alloc] initWithFrame:CGRectZero]autorelease]; 
    NSString *loginData; 
    NSError *keychainError; 
    NSString *checkUsername= [SFHFKeychainUtils getPasswordForUsername:@"Username" andServiceName:@"iReader" error:&keychainError]; 
    NSString *checkPassword = [SFHFKeychainUtils getPasswordForUsername:@"Password" andServiceName:@"iReader" error:&keychainError]; 

    if (checkPassword == nil || checkUsername == nil) { 
     alreadySignedIn = NO; 
     loginData = @"Sync Settings"; 

    } else { 
     alreadySignedIn = YES; 
     loginData = @"Logout"; 
    } 


    if(ViewPushed == NO) { 

     self.navigationItem.leftBarButtonItem = [[[UIBarButtonItem alloc] 
                initWithBarButtonSystemItem:UIBarButtonSystemItemCancel 
                target:self action:@selector(cancel_Clicked:)] autorelease]; 


    } 
    listOfItems = [[NSMutableArray alloc] init]; 
    NSArray *syncSettingsToLoad = [NSArray arrayWithObjects:loginData, nil]; 
    NSDictionary *syncSettingsToLoadDict = [NSDictionary dictionaryWithObject:syncSettingsToLoad forKey:@"Settings"]; 

    NSArray *generalSetting = nil; 
    generalSetting = [NSArray arrayWithObjects:@"Sync at Startup",@"Confirm Mark as Read", @"Landscape Mode", @"Cache Settings",nil]; 
    NSMutableDictionary *generalSettingsDict = [NSMutableDictionary dictionaryWithObject:generalSetting forKey:@"Settings"]; 

    NSArray *appearanceSettings = [NSArray arrayWithObjects:@"New Items First", @"App Icon Badge", @"Large Font", nil]; 
    NSDictionary *appearanceSettingsDict = [NSDictionary dictionaryWithObject:appearanceSettings forKey:@"Settings"]; 

    NSArray *sharingSettings = [NSArray arrayWithObjects:@"Customize Sharing Options", nil]; 
    NSDictionary *sharingSettingsDict = [NSDictionary dictionaryWithObject:sharingSettings forKey:@"Settings"]; 

    NSArray *advancedSettings = [NSArray arrayWithObjects:@"Advanced Options", nil]; 
    NSDictionary *advancedSettingsDict = [NSDictionary dictionaryWithObject:advancedSettings forKey:@"Settings"]; 

    [listOfItems addObject:syncSettingsToLoadDict]; 
    [listOfItems addObject:generalSettingsDict]; 
    [listOfItems addObject:appearanceSettingsDict]; 
    [listOfItems addObject:sharingSettingsDict]; 
    [listOfItems addObject:advancedSettingsDict]; 
    self.title [email protected]"Settings"; 


     // Uncomment the following line to preserve selection between presentations. 
     //self.clearsSelectionOnViewWillAppear = NO; 

     // Uncomment the following line to display an Edit button in the navigation bar for this view controller. 
     // self.navigationItem.rightBarButtonItem = self.editButtonItem; 
    [super viewDidLoad]; 
} 

    //defaultDatabase = [[userPrefs valueForKey:MAPref_DefaultDatabase] retain]; 
-(void) cancel_Clicked:(id)sender 
{ 
    [self.navigationController dismissModalViewControllerAnimated:YES]; 
} 


- (void)viewWillAppear:(BOOL)animated { 
     //[self.navigationController setNavigationBarHidden:YES animated:animated]; 
    [super viewWillAppear:animated]; 
} 

/* 
- (void)viewDidAppear:(BOOL)animated { 
[super viewDidAppear:animated]; 
} 
*/ 
/* 
- (void)viewWillDisappear:(BOOL)animated { 
[super viewWillDisappear:animated]; 
} 
*/ 
/* 
- (void)viewDidDisappear:(BOOL)animated { 
[super viewDidDisappear:animated]; 
} 
*/ 
/* 
// Override to allow orientations other than the default portrait orientation. 
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
// Return YES for supported orientations 
return (interfaceOrientation == UIInterfaceOrientationPortrait); 
} 
*/ 


#pragma mark - 
#pragma mark Table view data source 

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { 
     // Return the number of sections. 
    return [listOfItems count]; 

} 


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
     // Return the number of rows in the section. 
    NSDictionary *dictionary = [listOfItems objectAtIndex:section]; 
    NSArray *array = [dictionary objectForKey:@"Settings"]; 
    return [array count]; 

} 

-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection: 
(NSInteger) section { 
    if (section == 0) { 
     return @"Sync Settings"; 
    } 
    if (section == 1) { 
     return @"General Options"; 
    } 
    if (section == 2) { 
     return @"Appearance Options"; 
    } 
    if (section == 3){ 
     return @"Sharing Options"; 
    } 
    if (section == 4){ 
     return @"Advanced Options"; 
    } 
    return nil; 
} 

    // Customize the appearance of table view cells. 
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

     //NSLog(@"This is what we are looking for %@ %@", checkUsername, checkPassword); 
     // Configure the cell... 
    NSDictionary *dictionary = [listOfItems objectAtIndex:indexPath.section]; 
    NSArray *array =[dictionary objectForKey:@"Settings"]; 
    NSString * cellValue = [array objectAtIndex:indexPath.row]; 

    static NSString *CellIdentifier = @"Cell"; 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
    if (indexPath.section == 0 && indexPath.row == 0) { 
     static NSString *SomeIdentifierA = @"SomeIdentifierA"; 

      // This could be some custom table cell class if appropriate  
     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:SomeIdentifierA]; 
     if (cell == nil) { 
      cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:SomeIdentifierA] autorelease]; 

      cell.accessoryType = UITableViewCellSelectionStyleBlue; 


     } 
     cell.textLabel.text =cellValue; 
     return cell; 
    } 
    else if (indexPath.section ==1 && indexPath.row ==0) { 
     static NSString *SomeIdentifierB = @"SomeIdentifierB"; 

      // This could be some custom table cell class if appropriate  
     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:SomeIdentifierB]; 
     if (cell == nil) { 
      cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:SomeIdentifierB] autorelease]; 
      [syncSwitch addTarget:self action:@selector(syncAtStartup:) forControlEvents:UIControlEventValueChanged]; 
       //[cell.contentView addSubview:syncSwitch]; 
      cell.accessoryView = syncSwitch; 
      cell.selectionStyle = UITableViewCellSelectionStyleNone; 
       //cell.reuseIdentifier = @"Cell1"; 
     } 
     cell.textLabel.text [email protected]"Sync at Startup"; 
     return cell; 
    } 
    else if(indexPath.section == 1 && indexPath.row == 1){ 
     static NSString *SomeIdentifierC = @"SomeIdentifierC"; 
      // This could be some custom table cell class if appropriate  
     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:SomeIdentifierC]; 
     if (cell == nil) { 
      cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:SomeIdentifierC] autorelease]; 
      [readSwitch addTarget:self action:@selector(confirmMarkAsRead:) forControlEvents:UIControlEventValueChanged]; 
      cell.accessoryView = readSwitch; 
      cell.selectionStyle = UITableViewCellSelectionStyleNone; 
     } 
     cell.textLabel.text [email protected]"Confirm Mark as Read"; 
     return cell; 
    } 
    else if(indexPath.section == 1 && indexPath.row == 2){ 
     static NSString *SomeIdentifierD = @"SomeIdentifierD"; 

      // This could be some custom table cell class if appropriate  
     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:SomeIdentifierD]; 
     if (cell == nil) { 
      cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:SomeIdentifierD] autorelease]; 
      [landscapeSwitch addTarget:self action:@selector(landscapeMode:) forControlEvents:UIControlEventValueChanged]; 
      cell.accessoryView = landscapeSwitch; 
      cell.selectionStyle = UITableViewCellSelectionStyleNone; 

     } 
     cell.textLabel.text [email protected]"Landscape Mode"; 
     return cell; 
    } 
    else if (indexPath.section == 1 && indexPath.row == 3) { 
     static NSString *SomeIdentifierE = @"SomeIdentifierE"; 

      // This could be some custom table cell class if appropriate  
     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:SomeIdentifierE]; 
     if (cell == nil) { 
      cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:SomeIdentifierE] autorelease]; 
      cell.accessoryType = UITableViewCellSelectionStyleBlue; 
     } 
     cell.textLabel.text [email protected]"Cache Settings"; 
     return cell; 
    } 
    else if (indexPath.section == 1 && indexPath.row == 4) { 
     static NSString *SomeIdentifierJ = @"SomeIdentifierJ"; 

      // This could be some custom table cell class if appropriate  
     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:SomeIdentifierJ]; 
     if (cell == nil) { 
      cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:SomeIdentifierJ] autorelease]; 
      cell.accessoryType = UITableViewCellSelectionStyleBlue; 
     } 
     cell.textLabel.text [email protected]"Caches"; 
     return cell; 
    } 
    else if(indexPath.section == 2 && indexPath.row == 0){ 
     static NSString *SomeIdentifierN = @"SomeIdentifierF"; 

      // This could be some custom table cell class if appropriate  
     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:SomeIdentifierN]; 
     if (cell == nil) { 
      cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:SomeIdentifierN] autorelease]; 
      [newItemsFirstSwitch addTarget:self action:@selector(newItemFirst:) forControlEvents:UIControlEventValueChanged]; 
      cell.accessoryView = newItemsFirstSwitch; 
      cell.selectionStyle = UITableViewCellSelectionStyleNone; 
     } 
      cell.textLabel.text [email protected]"App Icon Badge"; 
      return cell; 
     } 


     else if(indexPath.section == 2 && indexPath.row == 1){ 
     static NSString *SomeIdentifierF = @"SomeIdentifierF"; 

      // This could be some custom table cell class if appropriate  
     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:SomeIdentifierF]; 
     if (cell == nil) { 
      cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:SomeIdentifierF] autorelease]; 
      [badgeSwitch addTarget:self action:@selector(appBadgeSetting:) forControlEvents:UIControlEventValueChanged]; 
      cell.accessoryView = badgeSwitch; 
      cell.selectionStyle = UITableViewCellSelectionStyleNone; 
     } 
      cell.textLabel.text [email protected]"App Icon Badge"; 
      return cell; 
     } 

     else if(indexPath.section == 2 && indexPath.row == 2){ 
      static NSString *SomeIdentifierG = @"SomeIdentifierG"; 

      // This could be some custom table cell class if appropriate  
     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:SomeIdentifierG]; 
     if (cell == nil) { 
      cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:SomeIdentifierG] autorelease]; 
      [largeFontSwitch addTarget:self action:@selector (largeFontSetting:) forControlEvents:UIControlEventValueChanged]; 
      //[largeFontSwitch addTarget:self action:@selector(largeFontSetting:) forControlEvents:UIControlEventValueChanged]; 
      cell.accessoryView = largeFontSwitch; 
      cell.selectionStyle = UITableViewCellSelectionStyleNone; 
     } 
      cell.textLabel.text [email protected]"Large Font Size"; 
      return cell; 
     } 
     else if (indexPath.section == 3 && indexPath.row == 0) { 
      static NSString *SomeIdentifierH = @"SomeIdentifierH"; 

      // This could be some custom table cell class if appropriate  
     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:SomeIdentifierH]; 
     if (cell == nil) { 
      cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:SomeIdentifierH] autorelease]; 
      cell.accessoryType = UITableViewCellSelectionStyleBlue; 
     } 
      cell.textLabel.text [email protected]"Customize Sharing Options"; 
      return cell; 
     } 
     else if (indexPath.section == 4 && indexPath.row == 0) { 
      static NSString *SomeIdentifierI = @"SomeIdentifierI"; 

      // This could be some custom table cell class if appropriate  
     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:SomeIdentifierI]; 
     if (cell == nil) { 
      cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:SomeIdentifierI] autorelease]; 
      cell.accessoryType = UITableViewCellSelectionStyleBlue; 
     } 
      cell.textLabel.text [email protected]"Advanced Options"; 
      return cell; 
     } 
     //switcher.on = [[NSUserDefaults standardUserDefaults]boolForKey:@"Settings"]; 

     cell.textLabel.font = [UIFont boldSystemFontOfSize:13]; 
     cell.textLabel.adjustsFontSizeToFitWidth = YES; 

     return cell; 
} 
/* 
// Override to support conditional editing of the table view. 
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath { 
// Return NO if you do not want the specified item to be editable. 
return YES; 
} 
*/ 


/* 
// Override to support editing the table view. 
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { 

if (editingStyle == UITableViewCellEditingStyleDelete) { 
// Delete the row from the data source 
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade]; 
} 
else if (editingStyle == UITableViewCellEditingStyleInsert) { 
// Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view 
} 
} 
*/ 


/* 
// Override to support rearranging the table view. 
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath { 
} 
*/ 


/* 
// Override to support conditional rearranging of the table view. 
- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath { 
// Return NO if you do not want the item to be re-orderable. 
return YES; 
} 
*/ 


#pragma mark - 
#pragma mark Table view delegate 

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    if(indexPath.section ==0){ 
     if (alreadySignedIn == NO) { 
      if(indexPath.section == 0 && ivControllerCell == nil ){ 
       [tableView reloadData]; 
       ivControllerCell = [[GoogleClientLogin alloc] initWithNibName:@"GoogleClientLogin" bundle:[NSBundle mainBundle]]; 
       ivControllerCell.ViewPushed = YES; 

        //Push the view controller to the top of the stack. 
       [self.navigationController pushViewController:ivControllerCell animated:YES]; 
       [ivControllerCell release]; 
       ivControllerCell = nil; 
      } 
     } 

     if (alreadySignedIn ==YES) { 
      NSError *keyChainEmpty; 
      [SFHFKeychainUtils deleteItemForUsername:@"Username" andServiceName:@"iReader" error:&keyChainEmpty]; 
      [SFHFKeychainUtils deleteItemForUsername:@"Password" andServiceName:@"iReader" error:&keyChainEmpty]; 

      ivControllerCell = [[GoogleClientLogin alloc] initWithNibName:@"GoogleClientLogin" bundle:[NSBundle mainBundle]]; 

      ivControllerCell.ViewPushed = YES; 
      [self.navigationController pushViewController:ivControllerCell animated:YES]; 

     } 
    } 

} 




-(void) removeSelfFromWindow 
{/* 



    if(self.view.superview){ 


    [UIView beginAnimations:@"curldown" context:nil]; 
    [UIView setAnimationDelegate:self]; 
    [UIView setAnimationDuration:0.5]; 
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; 
    [UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:self.view cache:NO]; 
    [self.view.superview removeFromSuperview]; 


    } 
    [UIView commitAnimations]; 

    */} 



#pragma mark - 
#pragma mark Memory management 

- (void)didReceiveMemoryWarning { 
     // Releases the view if it doesn't have a superview. 
    [super didReceiveMemoryWarning]; 

     // Relinquish ownership any cached data, images, etc that aren't in use. 
} 

- (void)viewDidUnload { 
     // Relinquish ownership of anything that can be recreated in viewDidLoad or on demand. 
     // For example: self.myOutlet = nil; 
} 
/*static Settings * _standardSettings = nil; 
+(Settings *)standardSettings 
{ 
    if (_standardSettings == nil) 
     _standardSettings = [[Settings alloc] init]; 
    return _standardSettings; 
}*/ 

-(void) setUIElements { 
    [landscapeSwitch setOn:[self landscapeModeSwitch]]; 
     //[feedList setSelectedFeeds:[self taglist]]; 
} 

- (void)dealloc { 
    [self save]; 
    [plistData release]; 
    [plistName release]; 
    [super dealloc]; 
} 


@end 

我開始滾動表視圖時出現以下錯誤。

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFType addTarget:action:forControlEvents:]: unrecognized selector sent to instance 0x5f463e0' 

有人可以幫我解決這個錯誤嗎?

乾杯

回答

1

當您分配它們時不要自動釋放開關。在這些行之後,您不擁有任何這些對象。

syncSwitch=[[UISwitch alloc] initWithFrame:CGRectZero]; 

放開,在dealloc方法

[syncSwitch release]; 
+0

由於一噸......我感覺地雷:)謝謝這個愚蠢的錯誤再次受挫通過我的代碼會完全和幫助......乾杯 – iSee 2010-09-23 17:05:51

相關問題