我在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) 我是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)
还有另一种方法吗?我的实际代码比那个大;
我一直在尝试生成 .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
我有一个列表,当我单击列表中的一项时,就会像这样调用一个 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
我有两个Date对象,我只想比较它们之间的时差,而忽略日期。将是这样的:
dt1 =(日期)2016-09-22 20:05:01 UTC
dt2 =(日期)2016-08-20 22:06:00 UTC
dt1和dt2之差为2小时或121分钟。
Swift中有一个我可以做到的功能吗?
我有一个片段,它是另一个片段的父片段。我正在添加这样的片段子项:
@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)
但总是返回空值。我究竟做错了什么?
我正在将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。有人可以帮我吗?