Jac*_*ies 5 iphone objective-c nsobject ipad ios
我正在我的应用程序中构建一个将被多次调用的登录系统.因此,我不是将代码复制并粘贴到几个位置,而是创建一个NSObject类,因此我可以在需要时调用该类.
登录系统将显示UIAlertView,当点击"OK"时,系统将尝试登录.我可以调用该类,UIAlertView将显示,但我无法分辨哪些按钮被点击.这是我的代码:
//Calling the login system
Login *login = [[Login alloc] init];
Run Code Online (Sandbox Code Playgroud)
Login.h:
#import <Foundation/Foundation.h>
@interface Login : NSObject <UIAlertViewDelegate> {
}
@end
Run Code Online (Sandbox Code Playgroud)
登录.m:
#import "Login.h"
@implementation Login
+(void)initialize {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Login" message:nil delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"OK", nil];
[alert show];
[alert release];
NSLog(@"Testing");
}
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
NSLog(@"Here");
NSString *title = [alertView buttonTitleAtIndex:buttonIndex];
if([title isEqualToString:@"OK"]) {
NSLog(@"Tapped");
}
}
@end
Run Code Online (Sandbox Code Playgroud)
现在,在我将UITextField放入视图之前,我只想让应用知道哪个按钮被点击了.Testing出现在日志中,但既不出现Here也不Tapped出现.谢谢!
您的警报视图不应由类方法 +(void)initialize 调用,而应由实例 -(id)init 方法调用,这就是您的实例未收到通知的原因。
类方法“+(void)initialize”在类首次加载时被调用。
实例方法“-(id)init”的名称以 init 开头,在创建(实例化)对象时调用。
-(id)init {
//alert view
self = [super init];
return self;
}
Run Code Online (Sandbox Code Playgroud)