为什么文本字段代码不适用于 Xcode 8 Obj-C?
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];
}
在模拟器中,当我单击文本字段时,我收到以下错误消息:
2017-04-14 18:43:52.616362 Prototype1[3075:119579] [MC] systemgroup.com.apple.configurationprofiles 路径的系统组容器是 /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] 从私人有效用户设置中读取。
2017-04-14 18:43:52.727 Prototype1[3075:119579] 找不到支持键盘类型 4 的键盘 iPhone-PortraitChoco-NumberPad;使用 1316927560_PortraitChoco_iPhone-Simple-Pad_Default
2017-04-14 18:43:53.607676 Prototype1[3075:119579] [常见] _BSMachError:端口 7403; (os/kern) 无效能力 (0x14) "Unable to insert COPY_SEND"
2017-04-14 18:43:53.608246 Prototype1[3075:119579] [常见] _BSMachError:端口 7403; (os/kern) 无效名称 (0xf) "Unable to deallocate send right"
我已经 2 年没用过 Xcode,但同样的代码当时运行良好,为什么它不适用于 Xcode 8、iOS 10?
Xcode8 的模拟器非常冗长。这些消息没有任何特殊意义。
--顺便说一句--
您的代码是以非常的旧风格编写的,不再是最佳实践。更好的是:
@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
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];
}
在模拟器中,当我单击文本字段时,我收到以下错误消息:
2017-04-14 18:43:52.616362 Prototype1[3075:119579] [MC] systemgroup.com.apple.configurationprofiles 路径的系统组容器是 /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] 从私人有效用户设置中读取。 2017-04-14 18:43:52.727 Prototype1[3075:119579] 找不到支持键盘类型 4 的键盘 iPhone-PortraitChoco-NumberPad;使用 1316927560_PortraitChoco_iPhone-Simple-Pad_Default 2017-04-14 18:43:53.607676 Prototype1[3075:119579] [常见] _BSMachError:端口 7403; (os/kern) 无效能力 (0x14) "Unable to insert COPY_SEND" 2017-04-14 18:43:53.608246 Prototype1[3075:119579] [常见] _BSMachError:端口 7403; (os/kern) 无效名称 (0xf) "Unable to deallocate send right"
我已经 2 年没用过 Xcode,但同样的代码当时运行良好,为什么它不适用于 Xcode 8、iOS 10?
Xcode8 的模拟器非常冗长。这些消息没有任何特殊意义。
--顺便说一句--
您的代码是以非常的旧风格编写的,不再是最佳实践。更好的是:
@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