小编Jaj*_*ris的帖子

何时使用dequeueReusableCellWithIdentifier vs dequeueReusableCellWithIdentifier:forIndexPath

dequeueReusableCellWithIdentifier有两个重载,我试图确定何时使用一个与另一个相比?

关于forIndexPath函数的apple文档声明:"此方法使用索引路径根据表格视图中单元格的位置执行其他配置."

我不知道怎么解释这个?

objective-c ios swift

158
推荐指数
3
解决办法
6万
查看次数

如何在Kotlin中获取泛型参数类

Firebase snapshot.getValue()预计会被调用如下:

snapshot?.getValue(Person::class.java)
Run Code Online (Sandbox Code Playgroud)

但是我想Person用通过类声明传递给类的泛型参数替换,即

class DataQuery<T : IModel> 
Run Code Online (Sandbox Code Playgroud)

并使用该泛型参数执行以下操作:

snapshot?.getValue(T::class.java)
Run Code Online (Sandbox Code Playgroud)

但当我尝试我得到一个错误说明

只有类可以在类文字的左侧使用

是否可以像在C#中那样为泛型参数提供类约束,或者是否可以使用其他语法来获取泛型参数的类型信息?

kotlin

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

在嵌套函数中自我捕获

有了闭包,我通常将[弱自我]附加到我的捕获列表上,然后对self进行空检查:

func myInstanceMethod()
{
    let myClosure =
    {
       [weak self] (result : Bool) in
       if let this = self
       { 
           this.anotherInstanceMethod()
       }
    }   

    functionExpectingClosure(myClosure)
}
Run Code Online (Sandbox Code Playgroud)

如果我使用嵌套函数代替闭包,我该如何对self执行null检查(或者检查甚至是必要的......或者使用像这样的嵌套函数甚至是好的做法)即

func myInstanceMethod()
{
    func nestedFunction(result : Bool)
    {
        anotherInstanceMethod()
    }

    functionExpectingClosure(nestedFunction)
}
Run Code Online (Sandbox Code Playgroud)

memory-management weak-references nested-function swift capture-list

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

如何实例化泛型类型的新实例

在C#中,您可以在泛型上放置一个新约束来创建泛型参数类型的新实例,在Kotlin中是否有等价物?

现在我的工作是:

fun <T> someMethod(class : () -> T) {
    val newInstance = class()
}
Run Code Online (Sandbox Code Playgroud)

而我正在调用someMethod()

someMethod<MyClass>(::MyClass)
Run Code Online (Sandbox Code Playgroud)

但我想做这样的事情:

fun <T : new> someMethod() {
    val newInstance = T()
}
Run Code Online (Sandbox Code Playgroud)

那可能吗?

kotlin

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

如何创建可重用的库

我想创建一个可以在我的 Android 应用程序中重复使用的 Kotlin 库。然而我不希望它成为一个 Android 库,因为我希望将它连接到一些测试和模拟框架。

在我的 Android 应用程序中,我右键单击顶级应用程序节点并执行操作,New -> Module然后选择Java Library. 然而,在新的 Java 库中,Kotlin 似乎仅得到部分支持。语法大部分有效,但其他部分则无效。

例如,forEach在 my 上HashMap未解决并尝试对其进行索引,例如items[0]. 我以正确的方式处理这件事吗?

kotlin

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

为什么需要在函数体中包装函数调用

我经常在JavaScript中看到以下内容:

$("#sendButton").click(function() {
    sendForm();
}
Run Code Online (Sandbox Code Playgroud)

为什么有必要将调用包装到sendForm()函数内部?我认为这样做会更具可读性,更少打字.

$("#sendButton").click(sendForm);
Run Code Online (Sandbox Code Playgroud)

每种方法有哪些优点/缺点?谢谢!

javascript

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