我正在尝试使用Form-Data向api执行简单的POST请求,但我总是得到状态401作为回报.
我可以很容易地在xcode之外(例如在Postman中)调用成功,我所做的就是使用Form-Data类型的键值对POST到url,但在xcode中它总是失败.
这是我的AFHTTPClient:
@implementation UnpaktAPIClient
+ (id)sharedInstance {
static UnpaktAPIClient *__sharedInstance;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
__sharedInstance = [[UnpaktAPIClient alloc] initWithBaseURL:[NSURL URLWithString:UnpaktAPIBaseURLString]];
});
return __sharedInstance;
}
- (id)initWithBaseURL:(NSURL *)url {
self = [super initWithBaseURL:url];
if (self) {
[self registerHTTPOperationClass:[AFJSONRequestOperation class]];
[self setParameterEncoding:AFFormURLParameterEncoding];
}
return self;
}
- (NSDictionary *)login:(NSDictionary *)credentials {
[[UnpaktAPIClient sharedInstance] postPath:@"/api/v1/users/login"
parameters:credentials
success:^(AFHTTPRequestOperation *operation, id response) {
NSLog(@"success");
}
failure:^(AFHTTPRequestOperation *operation, NSError *error){
NSLog(@"%@", error);
}];
return nil;
}
Run Code Online (Sandbox Code Playgroud)
我还尝试使用requestOperation创建请求:
- (NSDictionary *)login:(NSDictionary *)credentials {
NSMutableURLRequest *request …Run Code Online (Sandbox Code Playgroud) 我想将UISearchBar添加到已经具有标题视图的UITableView.当我尝试将搜索栏添加到现有的标题视图时,它一直有效,直到我点击它,此时我得到The view hierarchy is not prepared for the constraint,这似乎是因为搜索栏不是tableview的直接子视图,所以当UISearchController尝试更新时它不能的约束.
我找到的唯一方法是将表视图标题作为搜索栏,然后一切正常,但当然我丢失了标题视图中已有的其他视图.
我有一个名为的自定义类card,我需要从一组随机大小的卡片中创建一组10张独特的卡片.此外,我需要首先包括任何列入白名单的卡片,以确保它们始终包含在内.
我的问题是来自白名单的卡(并且只有白名单)可能在集合中重复.随机添加的卡永远不会重复,计数总是正确的(10).我无法弄清楚为什么isEqual似乎有时工作但不总是.
这是我创建集合的位置(randoms是要从中挑选的潜在牌阵列):
NSMutableSet *randomCards = [NSMutableSet setWithCapacity:10];
[randomCards addObjectsFromArray:whiteListArray];
while ([randomCards count] < 10) {
NSNumber *randomNumber = [NSNumber numberWithInt:(arc4random() % [randoms count])];
[randomCards addObject:[randoms objectAtIndex:[randomNumber intValue]]];
}
Run Code Online (Sandbox Code Playgroud)
我根据这里回答的另一个问题覆盖了isEqual我card班级的方法:
- (BOOL)isEqual:(id)other {
if (other == self)
return YES;
if (!other || ![other isKindOfClass:[self class]])
return NO;
return [self isEqualToCard:other];
}
- (BOOL)isEqualToCard:(Card *)myCard {
if (self == myCard) {
return YES;
}
if ([self cardName] != [myCard cardName] && …Run Code Online (Sandbox Code Playgroud) 我有一个带有根 UITabBarController 的应用程序,其中包含一些 UISplitViewController。一切都按预期工作,除了拆分视图折叠时,我希望能够隐藏标签栏。我正在推送新的详细信息视图控制器,[self.splitViewController showDetailViewController:detailNav sender:self];并且所有调用尝试hidesBottomBarWhenPushed都失败了。一切都在代码中布局,我不使用故事板。
这甚至可能吗,或者如果我在 iPhone 上使用拆分视图控制器,我是否被标签栏卡住了?
我在我的应用程序中使用故事板作为我的启动屏幕,它包含一个带有5个UINavigationControllers的UITabBarController.故事板除了提供启动屏幕之外什么都不做.
一旦实际的视图控制器加载我得到这个:
你可以想象,让选择跳跃就像它一样有点刺耳.我不知道如何以编程方式更改选项卡,因为我无法将自定义类附加到启动屏幕中的任何内容.当然,我真的不在乎我是否真的这样做,如果有办法用不同颜色的图标来伪造它,那也很好,但是系统会将这个色调添加到选定的图标.
有没有办法在故事板启动屏幕上执行此操作?谢谢.
我正在尝试创建一个容器视图控制器来将UINavigationController和自定义UIViewController一起保存在屏幕上.
我把它放在一个测试程序中,它运行得很好,但是当我尝试在我的实际项目中实现它时,包含View控件的外观方法永远不会被调用.
工作测试:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
MasterStatusViewController *master = [[MasterStatusViewController alloc] init];
[self.window setRootViewController:master];
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;
}
- (void)viewDidLoad {
[super viewDidLoad];
InventoryViewController *newInventory = [[InventoryViewController alloc] init];
self.navigation = [[UINavigationController alloc] initWithRootViewController:newInventory];
self.statusRibbon = [[StatusBarViewController alloc] initWithNibName:@"StatusBarViewController" bundle:nil];
[self addChildViewController:self.navigation];
self.navigation.view.frame = self.navigationView.frame;
[self.view addSubview:self.navigation.view];
[self.navigation didMoveToParentViewController:self];
[self addChildViewController:self.statusRibbon];
self.statusRibbon.view.frame = self.ribbonView.frame;
[self.view addSubview:self.statusRibbon.view];
[self.statusRibbon didMoveToParentViewController:self];
}
Run Code Online (Sandbox Code Playgroud)
失败的项目:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions …Run Code Online (Sandbox Code Playgroud) ios ×3
objective-c ×3
xcode ×3
afnetworking ×1
nsmutableset ×1
uisearchbar ×1
uistoryboard ×1
uitableview ×1