我一直在我的头文件中使用静态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,因此它不能从外部改变,而是我故意需要在类之外访问它.我能想到的另一件事就是隐藏字符串的值?
由于某种原因,我无法两个动画两个子视图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动画正确.
即使我在调用此方法之前添加了子视图控制器及其视图,也会发生相同的错误.
需要帮助,因为我用另一个应用程序跑了几个月,不得不做一个肮脏的黑客来绕过它,现在想解决这个问题.
谢谢