简体   繁体   中英

Why doesn't the textfield code work for Xcode 8 Obj-C?

ViewController.h

@interface ViewController : UIViewController{

IBOutlet UITextField *Signup;
IBOutlet UITextField *Login;

}
@property(nonatomic, retain)IBOutlet UITextField *Signup;
@property(nonatomic, retain)IBOutlet UITextField *Login;

-(IBAction)TYPE:(id)sender;

ViewController.m

@synthesize Signup;
@synthesize Login;

-(IBAction)TYPE:(id)sender{
[Signup resignFirstResponder];
[Login resignFirstResponder];
}

In Simulator when I click on the textfield I get the following error message:

2017-04-14 18:43:52.616362 Prototype1[3075:119579] [MC] System group container for systemgroup.com.apple.configurationprofiles path is /Users/robertstoley/Library/Developer/CoreSimulator/Devices/09556F3B-A7BC-4DF2-95EB-C3C13B6F39EA/data/Containers/Shared/SystemGroup/systemgroup.com.apple.configurationprofiles 2017-04-14 18:43:52.640402 Prototype1[3075:119579] [MC] Reading from private effective user settings. 2017-04-14 18:43:52.727 Prototype1[3075:119579] Can't find keyplane that supports type 4 for keyboard iPhone-PortraitChoco-NumberPad; using 1316927560_PortraitChoco_iPhone-Simple-Pad_Default 2017-04-14 18:43:53.607676 Prototype1[3075:119579] [Common] _BSMachError: port 7403; (os/kern) invalid capability (0x14) "Unable to insert COPY_SEND" 2017-04-14 18:43:53.608246 Prototype1[3075:119579] [Common] _BSMachError: port 7403; (os/kern) invalid name (0xf) "Unable to deallocate send right"

I haven't used Xcode in 2 years, but this same code worked fine then, why doesn't it work for Xcode 8, iOS 10?

The simulator for Xcode 8 is quite verbose. Those messages don't mean anything special.

-- BTW --

Your code is written in a very old style that isn't best practice anymore. Better is:

@interface ViewController : UIViewController
// It's no longer necessary to have your properties between { and }

@property (nonatomic, weak) IBOutlet UITextField *signup;
@property (nonatomic, weak) IBOutlet UITextField *login;
// IBOutlets should be weak, other properties should be weak or strong for objects, or assign for structs and values.
@end


@implementation ViewController

// You don't have to synthesize your properties anymore.

- (IBAction)type:(id)sender {
    [self.signup resignFirstResponder];
    [_login resignFirstResponder];
    // but you do have to either use self. or underscore to refer to them.
}

@end

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM