小编ssh*_*h88的帖子

static const Vs extern const

我一直在我的头文件中使用静态const,如下所示:

static NSString * const myString = @"foo";
Run Code Online (Sandbox Code Playgroud)

但是已经读过这不是"安全"或正确的方法.显然,如果我想从另一个类访问我的const字符串,我应该在我的.h中声明字符串:

extern NSString * const myString;
Run Code Online (Sandbox Code Playgroud)

然后在我的.m文件中:

NSString * const myString = @"foo";
Run Code Online (Sandbox Code Playgroud)

它是否正确?如果是这样,是什么原因不直接在我的.h文件中将其声明为静态?它工作得很好,我看不到任何"安全"问题.它是一个const,因此它不能从外部改变,而是我故意需要在类之外访问它.我能想到的另一件事就是隐藏字符串的值?

c static objective-c extern ios

19
推荐指数
1
解决办法
9841
查看次数

同时动画两个UIView子视图不起作用

由于某种原因,我无法两个动画两个子视图postion.我写了以下内容

[self addChildViewController:self.photosViewController];
[self.photosViewController.view setFrame:CGRectMake(0, -self.view.frame.size.height,    self.view.frame.size.width, self.view.frame.size.height)];

[self.view addSubview:self.photosViewController.view];

[UIView animateWithDuration:1 delay:0
                        options:UIViewAnimationOptionCurveEaseIn
                     animations:^{

                         [self.stepsView setFrame:CGRectMake(0, self.view.frame.size.height, self.view.frame.size.width, self.view.frame.size.height)];
                         [self.photosViewController.view setFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
                     }
                     completion:^(BOOL finished) {
                         if (finished) {

                             button.tag = 0;
                         }
                     }];
Run Code Online (Sandbox Code Playgroud)

self.stepsView是一个IBOutlet UIView并且self.photosViewController.view是已添加到视图的子视图控制器视图.

目前的代码只有self.PhotosViewController.view动画.但是,如果我注释掉我添加子视图控制器视图的行,subview那么self.stepsView动画正确.

即使我在调用此方法之前添加了子视图控制器及其视图,也会发生相同的错误.

需要帮助,因为我用另一个应用程序跑了几个月,不得不做一个肮脏的黑客来绕过它,现在想解决这个问题.

谢谢

xcode core-animation uiviewcontroller uiview ios

2
推荐指数
1
解决办法
3003
查看次数