小编hok*_*rus的帖子

AFNetworking Post Form-Data

我正在尝试使用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)

xcode objective-c afnetworking

7
推荐指数
1
解决办法
8601
查看次数

UITearchBar UITableViewHeader的子视图?

我想将UISearchBar添加到已经具有标题视图的UITableView.当我尝试将搜索栏添加到现有的标题视图时,它一直有效,直到我点击它,此时我得到The view hierarchy is not prepared for the constraint,这似乎是因为搜索栏不是tableview的直接子视图,所以当UISearchController尝试更新时它不能的约束.

我找到的唯一方法是将表视图标题作为搜索栏,然后一切正常,但当然我丢失了标题视图中已有的其他视图.

uitableview uisearchbar ios uisearchcontroller

6
推荐指数
1
解决办法
1396
查看次数

NSMutableSet包含重复项

我有一个名为的自定义类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)

我根据这里回答的另一个问题覆盖了isEqualcard班级的方法:

- (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)

xcode objective-c nsmutableset

5
推荐指数
1
解决办法
3602
查看次数

UISplitViewController 详细视图在紧凑模式下隐藏 UITabBarController

我有一个带有根 UITabBarController 的应用程序,其中包含一些 UISplitViewController。一切都按预期工作,除了拆分视图折叠时,我希望能够隐藏标签栏。我正在推送新的详细信息视图控制器,[self.splitViewController showDetailViewController:detailNav sender:self];并且所有调用尝试hidesBottomBarWhenPushed都失败了。一切都在代码中布局,我不使用故事板。

这甚至可能吗,或者如果我在 iPhone 上使用拆分视图控制器,我是否被标签栏卡住了?

uitabbarcontroller uisplitviewcontroller ios

5
推荐指数
0
解决办法
409
查看次数

UITabBarController故事板启动屏幕 - 初始标签?

我在我的应用程序中使用故事板作为我的启动屏幕,它包含一个带有5个UINavigationControllers的UITabBarController.故事板除了提供启动屏幕之外什么都不做.

我想要做的是更改默认选定的选项卡.我现在坚持这个:启动标签栏

一旦实际的视图控制器加载我得到这个:

实际的标签栏

你可以想象,让选择跳跃就像它一样有点刺耳.我不知道如何以编程方式更改选项卡,因为我无法将自定义类附加到启动屏幕中的任何内容.当然,我真的不在乎我是否真的这样做,如果有办法用不同颜色的图标来伪造它,那也很好,但是系统会将这个色调添加到选定的图标.

有没有办法在故事板启动屏幕上执行此操作?谢谢.

uitabbarcontroller ios uistoryboard

4
推荐指数
2
解决办法
1171
查看次数

Container View Controller不转发外观方法

我正在尝试创建一个容器视图控制器来将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)

xcode objective-c uiviewcontroller

0
推荐指数
1
解决办法
3090
查看次数