gpt4 book ai didi

objective-c - quickDialog 表单的通用类

转载 作者:行者123 更新时间:2023-11-28 22:45:14 25 4
gpt4 key购买 nike

让我先解释一下情况。我正在制作一个使用 web 服务和 web 应用程序的 IOS 应用程序。举个例子。

假设我们有 X 公司。X 公司可以使用 Web 应用程序制作各种表格(回调表格、 session 申请表格、假期申请表格...),然后雇主将打开他们的申请并在一个表格中看到这些表格的所有标题表格 View 。当他们点击一个标题时,他们会转到下一个屏幕并看到整个表格并可以开始填写。

这里的困难在于每个公司都可以创建自己的表单。所以 X 公司可能有 Y 公司以外的其他类型的表单。经过大量研究,我发现了 QuickDialog 的惊人库。你可以在 here 找到它.绝对值得一试!

问题好的,现在的问题。一旦用户填写了表格,当然应该将数据发送回服务器。为此,我正在使用 Controller 类和 NSObject 类。最好的理解方法是查看登录示例。首先,这是登录的json。

{
"grouped": true,
"title": "Login Form",
"controllerName": "LoginController",
"sections": [
{ "title":"login", "elements": [
{ "type":"QEntryElement", "title":"Login","placeholder":"Login or email", "bind":"textValue:login", "key":"login"},
{ "type":"QEntryElement", "title":"Password", "placeholder":"Password", "secureTextEntry":true, "bind":"textValue:password" }
]
},
{ "elements":[
{ "type":"QButtonElement", "key":"button", "title":"Login", "controllerAction":"onLogin:"}
]
}
]
}

可以看到这两个字段都有一个绑定(bind)选项。该项目包含一个 NSObject 类 (loginInfo),在此类中,这些字段被添加为 NSStrings。

@interface LoginInfo : NSObject {
@private
NSString *_password;
NSString *_login;
}
@property(strong) NSString *login;
@property(strong) NSString *password;
@end

接下来是 Controller 类。在这个 Controller 类中,你说当按下按钮时,你从文本字段中获取值到这个 loginInfo 类中。这是通过以下方式完成的。

- (void)onLogin:(QButtonElement *)buttonElement {

[[[UIApplication sharedApplication] keyWindow] endEditing:YES];
[self loading:YES];
LoginInfo *info = [[LoginInfo alloc] init];
[self.root fetchValueUsingBindingsIntoObject:info];
[self performSelector:@selector(loginCompleted:) withObject:info afterDelay:2];
}
- (void)loginCompleted:(LoginInfo *)info {
[self loading:NO];
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Welcome" message:[NSString stringWithFormat: @"Hi %@, I hope you're loving QuickDialog! Here's your pass: %@", info.login, info.password] delegate:self cancelButtonTitle:@"YES!" otherButtonTitles:nil];
[alert show];
}

好的,我知道这是很多信息。但我只想对我的问题有一个很好的解释。我认为 Controller 类不是我的问题,但 NSObject 类是。我希望这是通用的。因为这应该填充它从 json 返回的属性。我不知道我该怎么做。

我希望有人能帮助我!如果您需要更多解释,请随时询问!

在此先致以诚挚的问候和非常感谢!

最佳答案

fetchValueUsingBindingIntoObjects: 接受一个“id”,这意味着几乎任何支持 KVC 的对象都可以这样做:

NSMutableDictionary *dict = [NSMutableDictionary new];
[self.root fetchValueUsingBindingsIntoObject:dict];

通过这种方式,您可以获得有关任何表单的数据,并使用它来将其发送回网络。

关于objective-c - quickDialog 表单的通用类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13377312/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com