小编And*_*ing的帖子

在Ciftloat中使用CGFloat进行浮动

我需要将值存储为Float,但源数据是CGFloat:

let myFloat : Float = myRect.origin.x
Run Code Online (Sandbox Code Playgroud)

但这会导致编译器错误:'NSNumber'不属于子类型'Float'

所以如果我明确地这样做:

let myFloat : Float = myRect.origin.x as Float
Run Code Online (Sandbox Code Playgroud)

但这反过来导致编译器错误:'无法将表达式的类型'Float'转换为'Float''

这样做的正确方法是什么,请满足编译器的要求?

casting cgfloat swift

87
推荐指数
3
解决办法
8万
查看次数

Core-Data中的自定义setter方法

我需要foo在我的子类中为字段(我们称之为)编写自定义setter方法NSManagedObject.foo在数据模型中定义,Xcode分别自动生成@property@dynamic.h和.m文件中的字段.

如果我像这样写我的二传手:

- (void)setFoo: (NSObject *)inFoo {
    [super setFoo: inFoo];
    [self updateStuff];
}
Run Code Online (Sandbox Code Playgroud)

然后我在调用时收到编译器警告super.

或者,如果我这样做:

- (void)setFoo: (NSObject *)inFoo {
    [super setValue: inFoo forKey: inFoo];
    [self updateStuff];
}
Run Code Online (Sandbox Code Playgroud)

然后我最终陷入无限循环.

那么为NSManagedObject的子类编写自定义setter的正确方法是什么?

setter core-data objective-c

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

在Swift中将String转换为Bool - 通过API或大多数类似Swift的方法

是否有API将布尔值的大多数可能的String表示形式(例如"True","true","False","false","yes","no","1","0")转换为Bool在斯威夫特?

如果没有,那么从头开始编码这个最类似Swift的方法是什么?它是一个功能map()操作吗?或者是其他东西?

这个实例中的原始源数据是JSON,但我对以尽可能类似Swift的方式解决问题的关键感兴趣,因此在此过程中学习更多关于语言的知识.

boolean swift

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

在Swift中设置NSManagedObject关系

如何NSManagedObject在Swift 的子类中将对象添加到关系属性?

在Objective-C中,当您NSManagedObject从数据模型在Xcode中生成子类时,会有一个自动生成的类扩展,其中包含如下声明:

@interface MyManagedObject (CoreDataGeneratedAccessors)

     - (void)addMySubObject: (MyRelationshipObject *)value;
     - (void)addMySubObjects: (NSSet *)values;

@end
Run Code Online (Sandbox Code Playgroud)

然而,Xcode目前缺乏Swift类的这一类生成功能.

如果我尝试直接在Swift对象上调用等效方法:

myObject.addSubObject(subObject)
Run Code Online (Sandbox Code Playgroud)

...我在方法调用上遇到编译器错误,因为这些生成的访问器不可见.

我已经将关系属性声明为@NSManaged,如文档中所述.

或者我是否必须为具有关系的数据模型恢复Objective-C对象?

macos core-data nsmanagedobject ios swift

34
推荐指数
6
解决办法
2万
查看次数

Android上的Kotlin - 是否有最低API级别要求?

我正在认真考虑在一个绿地Android项目中使用Kotlin,但我担心连锁影响,其中最重要的是最低要求的API级别.

在其他平台上,新语言需要某个操作系统版本(例如Swift需要iOS 7),我想知道这里是否有类似的要求?

我一直在搜索各种Kotlin/Android常见问题和Stackoverflow,但一直无法找到这些信息.

android kotlin

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

迭代NSOrderedSet

我正在尝试迭代NSOrderedSet的实例.像这样的东西:

func myFunc() {
    var orderedSet = NSOrderedSet(array: [ 42, 43, 44])

    for n in orderedSet {
        NSLog("%i", n)
    }
}
Run Code Online (Sandbox Code Playgroud)

...但是for循环行会产生这个编译器错误:

'NSOrderedSet' does not have a member named 'Generator'
Run Code Online (Sandbox Code Playgroud)

现在我可以将它转换为这样的数组:

    for n in orderedSet.array {
        NSLog("%i", n)
    }
Run Code Online (Sandbox Code Playgroud)

......但我想知道是否有更好的解决方案?

我也很想知道为什么迭代一套而不是有序集?NSOrderedSet实现NSFastEnumeration,所以它应该正常工作?

nsorderedset swift

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

将可选块或闭包传递给Swift中的函数

将可选块传递给Swift中的函数的正确语法是什么?

closures swift

18
推荐指数
2
解决办法
2万
查看次数

在Mantle中替换JSON空值

我正在使用Mantle来解析一些通常看起来像这样的JSON:

"fields": {

      "foobar": 41
    }
Run Code Online (Sandbox Code Playgroud)

但是有时foobar的值为null:

"fields": {

      "foobar": null
    }
Run Code Online (Sandbox Code Playgroud)

这会导致MTLValidateAndSetValue抛出异常,因为它试图通过键值编码设置nil值.

我想要做的是检测此null值的存在并用-1替换它.

我尝试覆盖foobarJSONTransformer我的MTLModel子类,如下所示:

+ (NSValueTransformer *)foobarJSONTransformer {
return [MTLValueTransformer transformerWithBlock:^id(id inObj) {
    if (inObj == [NSNull null]) {
        return [NSNumber numberWithInteger: -1];
    } else {
        return inObj;
    }
}];
Run Code Online (Sandbox Code Playgroud)

...我可以看到这个代码被调用但是inObj永远不会等于[NSNull null],因此替换不会发生,并且Mantle仍然抛出异常.

捕获此JSON null case并进行替换的正确方法是什么?

json ios github-mantle

14
推荐指数
2
解决办法
3697
查看次数

S9/S9 +特定的WebView设备崩溃报告

我们一直看到谷歌播放的崩溃报告特定于三星S9(starqlesq)和S9 +(star2qlesq),两者都运行Android 8.0.0:

signal 11 (SIGSEGV), code 1 (SEGV_MAPERR) backtrace: #00 pc 0000000000a51278 /vendor/lib64/libllvm-glnext.so (_ZN13ShaderObjects17loadProgramBinaryEP15CompilerContextPvmP23QGLC_LINKPROGRAM_RESULT+1396) #01 pc 000000000099b500 /vendor/lib64/libllvm-glnext.so (_ZN15CompilerContext17loadProgramBinaryEPvmP23QGLC_LINKPROGRAM_RESULT+160) #02 pc 0000000000a6e110 /vendor/lib64/libllvm-glnext.so (_Z21QGLCLoadProgramBinaryPvS_mP23QGLC_LINKPROGRAM_RESULT+88) #03 pc 00000000001a501c /vendor/lib64/egl/libGLESv2_adreno.so (_ZN17EsxShaderCompiler21LoadProgramBinaryBlobEP10EsxContextP10EsxProgramPKvmP10EsxInfoLog+256)

查看上面的堆栈跟踪,崩溃似乎是在OpenGL系统代码中.

这很奇怪,因为我们将集成的崩溃报告解决方案(Microsoft App Center SDK)和其他崩溃报告发送到App Center.

我们的应用程序大量使用WebView,我现在理解使用Chrome,在一个单独的过程中运行.

因此,我的问题是:

  • 这个崩溃报告是针对Google Play而不是App Center指示WebView相关崩溃的事实吗?
  • 什么样的事情会导致像这样的崩溃?到目前为止,它影响了3个唯一用户,因此它似乎并不特定于具有不寻常设备配置的单个用户.
  • 在缩小和解决问题方面哪些行动最有效?

crash android crash-reports webview

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

服务工作者在iOS 11.3中的WKWebView中不可用

服务工作者可以在WKWebViewiOS 11.3测试版中使用,但似乎不适用于iOS 11.3的最终GM版本.

有谁知道如何WKWebView在iOS上重新启用Service Workers ?

wkwebview service-worker

12
推荐指数
2
解决办法
3879
查看次数