小编yas*_*sin的帖子

如何使用Alamofire 4 SessionManager?

我在Swift 2.3中使用Alamofire 3.4并且我需要将我的代码更新为Swift 3和Alamofire 4.我正在使用Alamofire的Manager在URL中进行POST.我阅读了有关SessionManager的文档,我理解请求使用方法.GET.

我正在使用Manager .Response()来获取请求的回调,现在在SessionManager中已经更改了.

如何使用SessionManager创建POST方法?我如何从请求中获得响应?

这是我的原始代码:

import UIKit
import AEXML
import Alamofire

class Request: NSObject {

    internal typealias RequestCompletion = (statusCode: Int?, error:NSError?) -> ()
    private var completionBlock: RequestCompletion!

    var serverTrustPolicy: ServerTrustPolicy!
    var serverTrustPolicies: [String: ServerTrustPolicy]!
    var afManager: Manager!

    func buildBdRequest(ip : String, serviceStr : String, completionBlock:RequestCompletion){
       let url = getURL(ip, service: serviceStr)
        configureAlamoFireSSLPinningWithCertificateData()
        makeAlamofireRequest(url)

        self.completionBlock = completionBlock
    }

    func makeAlamofireRequest(url : String){
        self.afManager.request(.POST, url)
            .validate(statusCode: 200..<300)
            .response { request, response, data, error in

                print("data - > …
Run Code Online (Sandbox Code Playgroud)

ios swift alamofire swift3

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

落在Kotlin:切换/什么时候没有休息

我是kotlin的新手,我想做一个没有"休息"的开关.在java中会是这样的:

    switch (b){
        case 3:
            Log.d("int", "3");
        case 2:
            Log.d("int", "2");
        case 1:
            Log.d("int", "1");
    }
Run Code Online (Sandbox Code Playgroud)

如果b = 2那么它将打印:

D/int:2

D/int:1

我想在Kotlin中做到这一点,而不是为每个案例重复相同的代码.在kotlin转换器中,代码输出是:

when (b) {
  3 -> {
    Log.d("int", "3")
    Log.d("int", "2")
    Log.d("int", "1")
  }
  2 -> {
    Log.d("int", "2")
    Log.d("int", "1")
  }
  1 -> Log.d("int", "1")
}
Run Code Online (Sandbox Code Playgroud)

还有另一种方法吗?我的实际代码比那个大;

java android kotlin

11
推荐指数
0
解决办法
1905
查看次数

Android KeytoolException:无法读取密钥 AndroidDebugKey lengthTag=109,太大

我一直在尝试生成 .apk(调试或发布),但一直收到此错误:

com.android.ide.common.signing.KeytoolException: Failed to read key AndroidDebugKey from store "/home/note-300/.android/debug.keystore": DerInputStream.getLength(): lengthTag=109, too big.
Run Code Online (Sandbox Code Playgroud)

我已经尝试在 Android Studio 上创建一个新密钥(具有相同名称的密钥和别名),我删除了 .android/debug.keystore 并运行以下命令(从这里):

keytool -importkeystore -srckeystore old.keystore -destkeystore new.keystore -deststoretype pkcs12
Run Code Online (Sandbox Code Playgroud)

 keytool -importkeystore -srckeystore new.keystore -srcstoretype pkcs12 -destkeystore final.keystore -deststoretype jks
Run Code Online (Sandbox Code Playgroud)

我还能做什么来运行我的应用程序?

操作系统:Ubuntu 18.04

安卓工作室 3.3.1

android keytool

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

在 Android 4.4.2 上,WebView 加载缓慢

我有一个列表,当我单击列表中的一项时,就会像这样调用一个 HTML 页面:

webView.loadDataWithBaseURL("file:///android_asset/", content, "text/html", "utf-8", "about:blank");
Run Code Online (Sandbox Code Playgroud)

在这个 webview 里面,有 HTML5 视频(我正在使用这个库https://github.com/cprcrack/VideoEnabledWebView)。当我使用视频进入全屏模式,然后返回列表并单击另一个项目以加载 HTML 页面时,此页面加载时间过长(如几分钟)。这仅发生在某些 4.4.2 设备上,在它快速加载的模拟器上。

我的硬件加速已启用。

我发现如果我旋转屏幕,第二页加载速度很快。但是我尝试重新加载页面 ou 设置以清除视图,但是没有用。

有谁知道为什么会这样?

我也收到此错误:

[ERROR:in_process_view_renderer.cc(193)] 无法请求 GL 进程。死锁可能性:0

android webview android-4.4-kitkat

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

仅比较Date对象中的时差

我有两个Date对象,我只想比较它们之间的时差,而忽略日期。将是这样的:

dt1 =(日期)2016-09-22 20:05:01 UTC
dt2 =(日期)2016-08-20 22:06:00 UTC

dt1和dt2之差为2小时或121分钟。

Swift中有一个我可以做到的功能吗?

ios swift swift3

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

在另一个片段中通过标签查找子片段

我有一个片段,它是另一个片段的父片段。我正在添加这样的片段子项:

@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_main, container, false);

        FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
        transaction.add(R.id.list_container, new SwipeableFragment(), FRAGMENT_LIST_VIEW).commit();
        transaction.addToBackStack(FRAGMENT_LIST_VIEW);

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

后来,我的父片段中有一个方法需要找到孩子。所以我这样做:

final Fragment fragment = getFragmentManager().findFragmentByTag(FRAGMENT_LIST_VIEW);
Run Code Online (Sandbox Code Playgroud)

但总是返回空值。我究竟做错了什么?

android android-fragments

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

包裹:无法封送价值

我正在将Kotlin与Anko结合使用,我想将其他玩家列表发送给另一个活动。

class Player(var name: String?) {
var score: Int = 0

init {
    this.score = 0
 }
}
Run Code Online (Sandbox Code Playgroud)

我的活动:

 class MainActivity: AppCompatActivity() {
         override fun onCreate(savedInstanceState: Bundle ? ) {
             btn.setOnClickListener {
                 val players = ArrayList <Player> ()
                 players.add(Player("John"))
                 players.add(Player("Jeff"))

                 startActivity <ScoreActivity> ("key" to players)
             }
         }
 }
Run Code Online (Sandbox Code Playgroud)

当代码到达startActivity行时,出现此错误:

java.lang.RuntimeException:包裹:无法封送值com.yasin.myapp.Player@4e3940e

我想我的班级播放器出了点问题,但是我不知道是怎么回事。我正在使用Kotlin版本1.1.4。有人可以帮我吗?

android kotlin anko

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