小编ppa*_*ica的帖子

Xcode配置文本字段失去焦点

我最近升级到Xcode 6.2.好像有一个奇怪的错误.例如,如果我想更改包ID,则在输入任何字符后,文本字段将失去焦点.

有人有同样的问题吗?有谁知道如何解决这个问题?

这对我来说非常烦人,我猜其他任何人也是如此.

xcode ios xcode-6.2

31
推荐指数
1
解决办法
913
查看次数

调用[super layoutSubviews]的正确方法是什么?

我刚刚在Facebook SDK for iOS中看到他们最后调用[super layoutSubviews];而不是在layoutSubviews方法的开头.

据我所知,我们应该始终把它作为第一行.可以以不同的方式实现它会导致任何意外的UI行为吗?

- (void)layoutSubviews
{
  CGSize size = self.bounds.size;
  CGSize longTitleSize = [self sizeThatFits:size title:[self _longLogInTitle]];
  NSString *title = (longTitleSize.width <= size.width ?
                     [self _longLogInTitle] :
                     [self _shortLogInTitle]);
  if (![title isEqualToString:[self titleForState:UIControlStateNormal]]) {
    [self setTitle:title forState:UIControlStateNormal];
  }

  [super layoutSubviews];
}
Run Code Online (Sandbox Code Playgroud)

sdk facebook objective-c ios

11
推荐指数
2
解决办法
6787
查看次数

在所有国家/地区,星期日符号列表是否始终以星期日开始?

我有这个代码:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSMutableArray *daysNames = [NSMutableArray arrayWithArray:dateFormatter.weekdaySymbols];
NSLog(@"daysNames = %@", daysNames);
Run Code Online (Sandbox Code Playgroud)

它输出:

daysNames = (
    Sunday,
    Monday,
    Tuesday,
    Wednesday,
    Thursday,
    Friday,
    Saturday
)
Run Code Online (Sandbox Code Playgroud)

我的问题是:

如果用户位于美国以外的其他国家/地区,让我们说法国或俄罗斯,阵列是否仍然从星期日(而不是星期一)开始,或者我不应该依赖于此?

事情是我设置闹钟日.在视觉上,用户从表视图中选择,该视图在第一行中始终具有星期一.如果日期设置与否,我会根据事实在NSMutableArray中保留0或1.如果daysNames [0]总是对应于星期日,我可以轻松地将所有元素向右移动一个位置,并且一切都将正确映射,否则当周星期一开始而不是星期日时,我还会遇到更多令人头疼的问题.

这是我为此写的完整代码(在美国它运作完美):

// Set the short days names

        NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
        NSMutableArray *daysNames = [NSMutableArray arrayWithArray:dateFormatter.weekdaySymbols];
        NSLog(@"daysNames = %@", daysNames);

        // daysNames will become @"SUN MON TUE WED THU FRI SAT";
        for (NSInteger i = 0; i < daysNames.count; i++) {

            NSUInteger length = ((NSString *)daysNames[i]).length; …
Run Code Online (Sandbox Code Playgroud)

cocoa-touch locale ios nslocale swift

7
推荐指数
2
解决办法
2386
查看次数

如何在swift中将Int转换为int?

我有一个名为Int的类型的变量

var number = value!.integerValue as Int
Run Code Online (Sandbox Code Playgroud)

现在我必须使用该值创建一个NSNumber对象.

我正在尝试使用此构造函数

value = NSNumber(int: number)
Run Code Online (Sandbox Code Playgroud)

,但它不起作用.

它期望原始类型int,而不是Int我猜.

有谁知道怎么解决这个问题?

谢谢!

ios swift

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

协议方法的默认值是可选还是必需?

我曾经认为协议方法的默认/隐式说明符是可选的。但是,在我当前的项目中,如果我没有专门添加@optional说明​​符,则会看到一条警告。没什么大不了的。我只是想知道,是否有一段时间是可选的默认值,现在是必需的?或者也许是我前一段时间学习Objective-C时错过了一些东西。

提前致谢!

delegates protocols objective-c

4
推荐指数
1
解决办法
2579
查看次数

我应该调用[super viewDidDisappear:animated]; 在viewDidDisappear的开头或结尾:

我重构了一些有人在3年多前为iOS写过的Objective-C代码.我看到viewDidDisapppear:方法被这样重写:

- (void)viewDidDisappear:(BOOL)animated
{
    [pagingView unloadData];

    [super viewDidDisappear:animated];
}
Run Code Online (Sandbox Code Playgroud)

它工作正常,但我想知道,行:

[super viewDidDisappear:animated];
Run Code Online (Sandbox Code Playgroud)

应该在结尾或开头.

我知道viewDidAppear:这是一个很好的做法:

[super viewDidAppear:animated];
Run Code Online (Sandbox Code Playgroud)

作为第一线.

另外,我知道dealloc(如果我们不使用ARC),我们写道:

[super dealloc];
Run Code Online (Sandbox Code Playgroud)

在末尾.

所以我在viewDidDisapppear:的情况下有点困惑,它应该在哪里.对我来说最后调用超类的方法是有道理的,但我有点困惑,不确定它是否是好的练习.

如果您知道确切的答案,请告诉我.

提前致谢!!!

model-view-controller objective-c uiviewcontroller ios

3
推荐指数
1
解决办法
1097
查看次数