Ich baue eine einfache App, die Anfragen an die API stellt. Nichts zu kompliziert. Ich frage mich nur, ob das ein gutes Designmuster für die App ist. Ich mache etwas anderes als das, was ich normalerweise mache, weil dieses Designmuster viel besser aussieht. Ich weiß, es gibt Meinungen darüber, was das bessere Designmuster ist, aber es gibt einen klaren Unterschied zwischen akzeptabel und nicht akzeptabel. Das versuche ich herauszufinden.iOS: Ist das ein vernünftiges Entwurfsmuster für eine einfache iOS App?
Edit: Um die Fragen zu vereinfachen, ist dies ein gutes Design-Muster für eine App, die API-Anfragen an den Server und die Weitergabe von Objekten zwischen den Controllern macht?
View Controller 1.m.
- (IBAction)login:(id)sender {
NSMutableDictionary *params = [[NSMutableDictionary alloc] init];
[params setValue:self.usernameField.text forKey:@"username"];
[params setValue:self.passwordField.text forKey:@"password"];
[apiClient loginRequest:params onSuccess:^(User *userInfo) {
ViewController2 *viewController2 = [[ViewController2 alloc] initWithNibName:@"ViewController2" bundle:nil];
viewController2.userInfo = userInfo;
[self.navigationController pushViewController:viewControllers animated:YES];
}onFailure:^(NSError* error) {
}];
}
APIClient.m
- (void)loginRequest:(NSMutableDictionary *)params
onSuccess:(void(^)(id response))successBlock
onFailure:(void (^)(NSError *))failureBlock
{
AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc]initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];
[manager POST:[NSString stringWithFormat:@"%@/login", URL] parameters:params progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
User *user = [[User alloc]init];
user.name = [responseObject objectForKey:@"name"];
successBlock(user);
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
failureBlock(error);
}];
}
User.h (dies ist das Modellobjekt)
#import <Foundation/Foundation.h>
@interface User : NSObject
@property (nonatomic,copy) NSString *name;
// There is more properties, but I excluded them from this example
@end
Was ist Ihre eigentliche Frage? Was ist mit dem Code, nach dem du fragst? – rmaddy
Ist das ein guter Architekturentwurf für eine App, die API-Anforderungen an den Server stellt und Objekte zwischen Controllern umgeht? – Weakman10122
Auf welches Architekturdesign beziehen Sie sich? – rmaddy