小编Ran*_*rns的帖子

转换为ARC - LLVM编译器3.0错误

我打开了一个我的旧项目,并Convert to Objective-C ARC从Edit/Refactor菜单中选择.我收到以下错误:

Apple LLVM compiler 3.0 Error

Error in format of file: /Users/myUserName/Library/Developer/Xcode/DerivedData/ProjectName-fkjvtdsoypoyrdcedtarbtypupor/Build/Intermediates/ProjectName.build/Debug-iphoneos/ProjectName.build/ProjectName-arc.migrate/remap
Run Code Online (Sandbox Code Playgroud)

这是我需要在Finder中手动删除某些文件/文件夹然后再试一次的情况之一吗?我刚刚删除了项目的"Build"文件夹中的所有内容,然后Product/Clean又重新尝试了,但仍然遇到了同样的错误.

xcode llvm automatic-ref-counting

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

测试本地化的应用内购买

在将方案设置为另一种语言的情况下运行应用程序不会影响测试中从 iTunes 收到的 SKProduct。我\xe2\x80\x99发现影响更改的唯一方法是在 iTunes Connect 中为您可能想要测试的每种...每种...语言创建一个新的沙盒测试用户。

\n\n

然后 - 您不应该通过“设置”在您的设备上使用该用户登录。运行您的应用程序并在询问时使用测试用户登录。

\n\n

这成功地让我的手机默认使用不同国家/地区的应用商店。

\n\n

但是,当我将每个 SKProduct\xe2\x80\x99s .localizedTitle、.localizedDescription 和 .price 打印到控制台时,只有价格被转换为不同的国家/地区\xe2\x80\x99s 数字。标题和描述仍然是英文(I\xe2\x80\x99m 在美国开发)。所有语言均在 iTunes Connect 中设置。

\n\n

当我点击购买应用内商品时,系统弹出的窗口是英文:“确认您的应用内购买”,然后是“您想以 ___ 购买一个 ____ 吗?” “取消”和“购买”按钮均为英文。第一个空白由我在 iTunes Connect 中设置的显示名称填充。但仍然使用英文版本。第二个空白处填写价格,该价格以测试用户商店的语言显示。[单独问题:日语显示日元符号和价格。西班牙显示欧元符号和价格。墨西哥显示美元符号和比索价格。]

\n\n

因此,只有价格适用于我的沙盒测试者帐户。有人知道如何在测试期间获得不同国家\xe2\x80\x99s 语言的标题吗?我不仅想确保它对于我本地化应用程序的每个国家/地区的人们来说都是正确的,我\xe2\x80\x99d 喜欢将 SKProducts\' 标题设置为我的应用程序中按钮上的标签启动应用内购买。我可以通过 Localized.strings 文件设置这些,但更愿意从 SKProduct 中提取它,因为我已经通过 iTunes Connect 输入了该信息。

\n\n

谢谢你的帮助!

\n

localization in-app-purchase ios skproduct swift

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

Swift 3中的字符串(contentsOfURL :)

此代码来自:

if let resultOfURL = try? String(contentsOfURL:myURL!, encoding: String.Encoding.utf8) {
Run Code Online (Sandbox Code Playgroud)

现在抛出这个错误:

'init' has been renamed to 'init(describing:)'
Run Code Online (Sandbox Code Playgroud)

有帮助吗?非常感谢!!

string swift swift3

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

可访问性自定义操作未在 Swift 中公布

当我添加accessibilityCustomActions到一个对象时,它可以在设备上正常工作,因为能够在操作中上下滑动并选择它们,但是没有关于“可用操作”的公告 - 我应该将其写入accessibilityLabel我?

我认为通过向我的对象添加自定义操作,它会自动宣布“可用的操作”,或“向上滑动以选择...”

accessibility voiceover swift

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

UITextField - 检测内置iPhone键盘上的输入?

[UITextFieldVariable成为FirstResponder]; 将键盘带到屏幕上.

如何检测用户键入键盘上的字母?每次按下按键我都想知道.

非常感谢提前!

iphone keyboard uitextfield ios

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

以编程方式创建 UITableViewCell 约束

这一切都发生在这个类中:

class CustomCell2: UITableViewCell {
Run Code Online (Sandbox Code Playgroud)

当我打印 Storyboard 中设置的现有宽度约束的值(标签 = 0.7 * 单元格宽度)时,我看到以下内容:

<NSLayoutConstraint:0x36b8750 UILabel:0x3d2aac0'Label'.width == 0.7*appName.CustomCell2:0x3e01880'CustomCell2'.width>
Run Code Online (Sandbox Code Playgroud)

当我尝试以编程方式创建相同的约束时,出现错误“视图层次结构未为约束做好准备:”

<NSLayoutConstraint:0xee08590 UILabel:0x3d2aac0'Label'.width == 0.9*appName.CustomCell2:0x3e01880'CustomCell2'.width>
Run Code Online (Sandbox Code Playgroud)

看起来完全一样,那为什么不能添加这个约束呢?

CustomCell2的awakeFromNib()中的约束代码:

let widthConstraint = NSLayoutConstraint(item: labelName, attribute: NSLayoutAttribute.width, relatedBy: NSLayoutRelation.equal, toItem: self, attribute: NSLayoutAttribute.width, multiplier: 0.9, constant: 0)
labelName.addConstraint(widthConstraint)
Run Code Online (Sandbox Code Playgroud)

错误消息的其余部分:

When added to a view, the constraint's items must be descendants of that view (or the view itself). This will crash if the constraint needs to be resolved before the view hierarchy is assembled. Break on -[UIView(UIConstraintBasedLayout) _viewHierarchyUnpreparedForConstraint:] …
Run Code Online (Sandbox Code Playgroud)

constraints uitableview ios swift

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

Objective-C 和 Swift 之间的 UserDefaults

只是想在这里格外小心......

如果我有一个应用程序在 UserDefaults 中保存了一个值,就像 Objective-C 中的这样:

NSString *newString = textField.text;
[[NSUserDefaults standardUserDefaults] setObject: newString forKey:@"textKey"];
Run Code Online (Sandbox Code Playgroud)

当我发布对现在用 Swift 编码的应用程序的更新时,这是否是检查该值是否存在的正确方法:

if (UserDefaults.standard.object(forKey: "textKey") as? String) != nil {
     print("There is a string")
} else {
     print("No string exists") 
}
Run Code Online (Sandbox Code Playgroud)

我尝试使用 .string(forKey:) 和 .bool(forKey:) ,因为它们已经被引入了,但是它是最安全的,因为它被保存为一个对象,将其作为一个对象拉出来,然后用“as?细绳”?

同一问题的棘手版本:

NSDictionary 对象的 NSMutableArray 被保存为 UserDefaults 中的对象

if let oldData = UserDefaults.standard.object(forKey: "theData") as? [NSMutableDictionary] {

}
Run Code Online (Sandbox Code Playgroud)

NSDictionary 和 NSMutableDictionary 在这里可以互换吗?

谢谢!

string object objective-c swift userdefaults

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

UIImageView.animationImages 后如何清除内存?

我创建了一个只有以下内容的新 Xcode 项目:

  • 从 png 拖入项目中创建 UIImages 数组的代码(我在将图像附加到数组时尝试了 UIImage(named:) 和 UIImage(contentsOfFile:))
  • 一个 UIImageView
  • 设置 imageView.animationImages = arrayOfImages 并调用 imageView.startAnimating() 的按钮

当按下按钮并播放动画时,内存使用量会增加 150-200MB,具体取决于图像数组中的图像数量。然后内存使用量保持在那个水平。

设置 imageView.animationImages = nil 不会清除内存。我怎么能去清除那个记忆?

任何的意见都将会有帮助。谢谢!

memory iphone animation ios swift

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

Swift 3 - 在视图数组上设置属性

我以前能够通过将多个视图(UIImageViews、UILabels 和 UIButtons)添加到一个数组,然后遍历该数组以进行如下属性更改来清理我的代码:

var hideViews = [imageView1, imageView2, label1, button1, button2]
      for eachView in hideViews {
          eachView.isHidden = true
      }
Run Code Online (Sandbox Code Playgroud)

然后变成了另一个版本的 Swift:

var hideViews = [imageView1, imageView2, label1, button1, button2] as [Any]
      for eachView in hideViews {
          (eachView as AnyObject).isHidden = true
      }
Run Code Online (Sandbox Code Playgroud)

我还可以使用它一次移动多个视图:

for view in viewsToMove {
    (view as AnyObject).frame = CGRect(x: view.frame.origin.x - 30, y: view.frame.origin.y, width: view.frame.width, height: view.frame.height)
}
Run Code Online (Sandbox Code Playgroud)

我现在收到错误:

无法分配给类型为“Bool!”的不可变表达式

无法分配给类型为“CGRect!”的不可变表达式

有人知道我在这里缺少什么,以便在 Swift 3 中做到这一点吗?

谢谢!

arrays immutability ios swift

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

Swift:删除 UIButton 属性标题

如果 UIButton 同时设置了标题和属性标题,则显示的是属性标题。

如果我将按钮设置为属性标题:

myButton.setAttributedTitle(myAttribText, for: .normal)
Run Code Online (Sandbox Code Playgroud)

稍后在应用程序中,我想将按钮设置为常规标题:

myButton.setTitle(myRegularText, for: .normal)
Run Code Online (Sandbox Code Playgroud)

是否有一行代码可以用来删除按钮上的属性标题,以便它不会覆盖我为按钮设置的新标题?谢谢!

uibutton nsattributedstring ios swift

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