小编cya*_*ide的帖子

识别Android中的RTL语言

除了针对所有RTL语言测试语言代码之外,还有办法识别RTL(从右到左)语言吗?

由于API 17+为RTL和LTR提供了多种资源,我认为应该有一种方法,至少从API 17开始.

android right-to-left

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

使Hyper-V和Intel HAXM共存

Windows手机模拟器需要运行Hyper-V,但Android模拟器又需要英特尔硬件加速管理器(HAXM),它不能容忍Hyper-V.

是否有办法保留Hyper-V并暂时禁用它以使英特尔HAXM运行,而无需重新启动

  1. 我运行Windows Hyper-V管理器并停止服务器(这涉及停止所有服务),但这没有帮助:Android模拟器仍然拒绝启动.

  2. 我调用了services.msc来查看某些Hyper-V服务是否仍在运行.实际上,所有以Hyper-V开头的服务都没有运行.我也停止了HV Host服务(Microsoft Hypervisor Host服务),但它仍然没有帮助!

有任何想法吗?

hyper-v haxm

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

使用Xcode 10进行基础国际化

我的项目声明了两种语言:英语作为开发,法语作为附加.它也Use Base Internationalization打勾了.

当我在Xcode 9中本地化一个Strings文件时,我通常将内容移动到法语,然后BaseLocalization列表中打勾.这给出了两个新的Strings文件的副本Base.lproj(包含英文文本),另一个用于fr.lproj,因此英语将用于法语以外的语言.

使用Xcode 10,Localization它没有列出Base,所以Base.lproj除了在Xcode 9中进行本地化之外我无法看到使用方法,然后在已创建基本文件的情况下恢复为Xcode 10.

这是一个错误,或者这是它的意思?


更新20Sep18.

现在有一个XCode 10的官方版本,即使Use Base Internationalization旗帜仍然存在,问题仍然存在.如果这不是一个错误,有人可以解释发生了什么?应该有Apple文档来讨论这个问题.

当本地化时,BTW,a storyboardnib静止列表Base.只有一个Strings文件似乎有问题.

xcode localization xcode10

11
推荐指数
1
解决办法
3830
查看次数

XCode 中框架的苍白图标的含义

有时,我的项目文件中会列出带有苍白(半透明?)图标的第三方框架(如所附屏幕截图中的 PersonalizedAdConsent)。这些框架似乎工作正常。

那是什么意思?

在此处输入图片说明

xcode frameworks

6
推荐指数
0
解决办法
460
查看次数

Swift:枚举中元素的索引(CaseIterable)

以下代码(编译时没有错误)检索特定 CaseIterable 枚举类型中元素的索引

public enum MyEnum : CaseIterable {
    case ONE, TWO, THREE

    public func ordinal() -> Int? {
       return MyEnum.allCases.firstIndex(of: self)
    }
}
Run Code Online (Sandbox Code Playgroud)

我想创建一个通用函数来处理所有 CaseIterable 枚举。

如果我尝试:

 public extension CaseIterable {

    public func ordinal() -> Int? {
        return CaseIterable.allCases.firstIndex(of: self)
    }
 }
Run Code Online (Sandbox Code Playgroud)

我收到一个编译器错误“ Member 'allCases' cannot be used on value of protocol type 'CaseIterable'; use a generic constraint instead”,这是非常合乎逻辑的,因为实际的枚举类型未知”。

当我尝试时CaseIterable<T>,我收到另一个错误,因为 CaseIterable 未声明为泛型类型。

有办法吗?

enums swift

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

下调“ Any”时出现Swift错误

以下代码几乎是Apple Documentation的精确复制品,编译时没有错误:

guard let firstItem = (rawItems! as? Array<Dictionary<String, Any>>)?.first else {
    throw AnError()
}

let identityRef = firstItem[kSecImportItemIdentity as String] 
               as! SecIdentity?   // !!!

guard let identity = identityRef else {
    throw AnError()
}
Run Code Online (Sandbox Code Playgroud)

标有的行!!!包含强制向下转换,而替换as!as显然会导致编译错误'Any?' is not convertible to 'SecIdentity?'...确实SecIdentity是一个类,Any甚至可能不是一个类。

我真正无法解释的是以下内容。如果我尝试使代码更安全,请使用此

guard let idenity = firstItem[kSecImportItemIdentity as String] as? SecIdentity
else {
    throw AnError()
}
Run Code Online (Sandbox Code Playgroud)

或这个

guard let idenityRef = firstItem[kSecImportItemIdentity as String] as? SecIdentity? …
Run Code Online (Sandbox Code Playgroud)

downcast optional-values swift

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

在Swift中使用CIColorMatrix过滤器

以下Swift函数应该使用指定的'tintColor'为灰度图像'greyImage'着色:

import UIKit

func colorizeImage(greyImage : UIImage, tintColor : UIColor) -> UIImage? {

    let colorMatrixFilter = CIFilter(name: "CIColorMatrix")

    var r:CGFloat = 0
    var g:CGFloat = 0
    var b:CGFloat = 0
    var a:CGFloat = 0
    tintColor.getRed(&r, green:&g, blue:&b, alpha:&a)

    colorMatrixFilter.setDefaults()
    colorMatrixFilter.setValue(greyImage, forKey:"inputImage") //kCIInputImageKey)
    colorMatrixFilter.setValue(CIVector(x:r, y:0, z:0, w:0), forKey:"inputRVector")
    colorMatrixFilter.setValue(CIVector(x:0, y:g, z:0, w:0), forKey:"inputGVector")
    colorMatrixFilter.setValue(CIVector(x:0, y:0, z:b, w:0), forKey:"inputBVector")
    colorMatrixFilter.setValue(CIVector(x:0, y:0, z:0, w:a), forKey:"inputAVector")

    if let ciImage =  colorMatrixFilter.outputImage {
        return UIImage(CIImage: ciImage);
    }

    return nil;
}
Run Code Online (Sandbox Code Playgroud)

颜色为UIColor.orangeColor()(r = 1,g = 0.5,b …

colormatrixfilter ios swift

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

在禁用 iCloud 驱动器的情况下运行 CloudKit 应用程序

我有两个应用程序访问 iCloud。第一个是基于文档的应用程序,通过 UIDocument/NSDocument 类使用 iCloud 文件夹,无需 CloudKit。相反,第二个应用程序使用 CloudKit 通过 cloudkit 数据库而不是 iCloud 文件夹访问数据。

当我禁用 iCloud 驱动器时,第一个应用程序会从列表中消失,但第二个应用程序仍然存在,这表明对 iCloud 的访问仍然可用。

但是,当 iCloud 驱动器被禁用时,CKContainer.accountStatus 返回“noAccount”,即使我已登录。当我忽略它并运行查询时,它不会返回任何记录。

iCloud 驱动器占用大量设备存储空间,因此一些用户可能会选择禁用它。出于这个原因,我更喜欢访问 iCloud,而不是使用 iCloud 驱动器。有办法吗?

顺便说一句,iCloud 文档对 CloudKit 和 iCloud Drive 进行了强烈区分,这可能被解释为 iCloud 驱动器的存在对于 iCloud 数据库访问并不重要的另一个证据。

cloudkit icloud-drive

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

为什么Swift不允许对非可选类型使用弱引用?

这并不是纯粹的好奇心,我可能会误解一些关于Swift中弱引用的东西。

假设我从View Controller创建一个类,并将其引用传递给初始化程序:

class = MyClass(vc: self)
Run Code Online (Sandbox Code Playgroud)

由于情节提要和窗口已经保留了对该View Controller的引用,因此MyClass对它的弱引用似乎是合乎逻辑的(出于类似原因,默认情况下,在IB中创建的所有引用都是弱的):

class MyClass: NSObject {
    private weak var viewController: UIViewController

    init(vc: UIViewController) {
       self.viewController = vc
       super.init
    }

    func setViewController(_ vc: UIViewController) {
       self.viewController = vc
    }

    ...
}
Run Code Online (Sandbox Code Playgroud)

但是,此代码会产生编译错误,因为viewController变量不是可选的。所以我必须加'!' 查看viewController声明并删除初始化程序,仅留下setViewController看起来不太自然的内容。

禁止非可选的弱数据的背后原因是什么?

weak-references optional swift

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

使用通用元素扩展数组

以下结构编译无错误:

struct AIEvaluation<T> : CustomDebugStringConvertible where T: CustomDebugStringConvertible {
    var param: T
    var value: Double

    var debugDescription: String {
        return param.debugDescription + ": " + String(format: "%.2f", value)
    }
}
Run Code Online (Sandbox Code Playgroud)

[AIEvalution<T>]是否可以为T 仍然是泛型类型的数组编写扩展?

尝试了以下方法:

extension Array where Element == AIEvaluation  {...}
extension Array where Element == AIEvaluation<T>  {...}
extension Array where Element == AIEvaluation<T> where T:CustomDebugStringConvertible  {...}
extension <T:CustomDebugStringConvertible> Array where Element == AIEvaluation<T>  {...}
Run Code Online (Sandbox Code Playgroud)

和别的。还尝试重新定义AIEvaluation为一个类。任何时候我遇到(不同的)编译错误。

generics swift

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

购买应用程序后,Amazon InApp购买仍然以沙盒模式运行

我使用Amazon AppStore发布了我的应用程序,但InApp Testing库仍将PurchasingService.IS_SANDBOX_MODE设置为true.

我没有使用亚马逊设备,这可以解释它为什么会发生.

  • Amazon InApp购买是否意味着在非亚马逊设备上运行?
  • 如果它运行,需要做什么才能启用实时测试?

amazon in-app-purchase amazon-web-services

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