小编ur3*_*r3k的帖子

在Alamofire POST请求中将数组作为参数发送

我的应用程序当前正在使用AWS API Gateway和Alamofire来访问充当我后端的不同lambda函数.

我需要将一个数组作为参数之一发送到其中一个API端点,因为我使用以下代码:

        var interests : [String]
        interests = globalInterests.map({ (interest) -> String in
            return interest.id!
        })

        // Parameters needed by the API
        let parameters: [String: AnyObject] = [
            "name" : name,
            "lastName" : lastName,
            "interests" : interests
        ]


        // Sends POST request to the AWS API
        Alamofire.request(.POST, url, parameters: parameters, encoding: .JSON).responseJSON { response in

            // Process Response
            switch response.result {

            case .Success:

                print("Sucess")

            case .Failure(let error):
                 print(error)
            }
        }
Run Code Online (Sandbox Code Playgroud)

但这是行不通的,因为API没有识别数组,但是如果我创建了一个"静态"数组

let interests = ["a", "b", "c"] 
Run Code Online (Sandbox Code Playgroud)

一切都按照预期运作. …

amazon-web-services ios swift alamofire aws-api-gateway

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

解析日期时的性能问题

我在iOS应用程序中遇到一些性能问题,同时将2013-12-19 00:00:00.000000格式化的日期转换为中等样式日期(Dec 25, 2014)和双倍值(epoch).根据Xcode分析器,执行此过程的两个函数(下图)占用了大约60%的执行时间

我想知道如何改进此代码,或者是否有更有效的方法来获得我需要的东西.

static func getMediumDate(dateString: String) -> (NSString)? {

    // Get the: yyyy-MM-dd
    let shorDate = dateString[dateString.startIndex..<dateString.startIndex.advancedBy(10)]

    let dateFormatter = NSDateFormatter()
    dateFormatter.locale = NSLocale(localeIdentifier: "en_US")
    dateFormatter.dateFormat = "yyyy-MM-dd"

    let stringFormatter = NSDateFormatter()
    stringFormatter.locale = NSLocale(localeIdentifier: "en_US")
    stringFormatter.dateFormat = "yyyy-MM-dd"
    stringFormatter.dateStyle = .MediumStyle

    let newDate = dateFormatter.dateFromString(shorDate)

    if (newDate != nil){
        return stringFormatter.stringFromDate(newDate!)
    }else{
        return nil
    }
}

static func getSortDate(dateString:String) -> Double{

    // Get the: yyyy-MM-dd
    let shorDate = dateString[dateString.startIndex..<dateString.startIndex.advancedBy(10)]

    let dateFormatter = …
Run Code Online (Sandbox Code Playgroud)

performance nsdateformatter ios swift

3
推荐指数
2
解决办法
1343
查看次数

时区更改不会保留在 Spring-Boot 应用程序中

当我在“Windows Server 2016 Datacenter”计算机上使用 Tomcat 9 运行 Springboot 2.3.8 应用程序时,我遇到时区问题。使用 Eclipse 或 Tomcat 9 在本地运行它不会触发该问题。

我在开始时使用以下命令设置时区:

@PostConstruct
    public void init()
    {
        TimeZone.setDefault(TimeZone.getTimeZone("Europe/Berlin"));

        Calendar now = Calendar.getInstance();
        TimeZone timeZone = now.getTimeZone();
        System.out.println(timeZone.getDisplayName());
    }
Run Code Online (Sandbox Code Playgroud)

打印 ->中欧标准时间

但是,稍后当我调用其中一个端点时,我会像以前一样检查时区

Calendar now = Calendar.getInstance();
TimeZone timeZone = now.getTimeZone();
System.out.println(timeZone.getDisplayName());
Run Code Online (Sandbox Code Playgroud)

我得到 -->协调世界时

我假设时区没有在 @PostConstruct 上真正设置,或者稍后被某些东西覆盖。

我的问题是,什么可以进行更改以及如何修复它以使我的时区始终位于“欧洲/柏林”。

我尝试过如上所述更改应用程序内的时区,在tomcat中使用java参数并更改机器本身的时区,但在所有情况下,更改都会被覆盖,并且在调用和端点时我会得到UTC。

Pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.8.RELEASE</version>
        <relativePath /> <!-- lookup parent from repository -->
    </parent>

    <groupId>com.test</groupId>
    <artifactId>project</artifactId>
    <name>project</name>
    <version>1.00</version>
    <packaging>war</packaging>

    <url>http://maven.apache.org</url>
    <properties> …
Run Code Online (Sandbox Code Playgroud)

java timezone spring-mvc spring-boot

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

如何直接将 Flask 的 jsonify 与 FireO Models 等自定义类一起使用?

我正在使用 Flask 版本 2.3.2 和 FireO ORM 2.1.0

FireO 模型不直接兼容 Flask 的 jsonify。这意味着它们默认情况下不可序列化,需要在将它们传递给 jsonify 之前将其转换为字典。

前任:

users_dicts = [user.to_dict() for user in users]
return jsonify(users_dicts), 200

# or 

return jsonify(user.to_dict()), 200
Run Code Online (Sandbox Code Playgroud)

所以我的想法是扩展 FireO 模型或 Flask,这样我就可以这样做:

jsonify(users), 200  # Users is a FireO QueryIterator
jsonify(user), 200   # User is a FireO model
Run Code Online (Sandbox Code Playgroud)

python serialization flask jsonify

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

更改 UIView 的框架并更新其子级的约束

我需要根据按下的按钮来更改 UI 元素,基本上它就像一个选项卡,但只是我的视图控制器的一部分。我需要显示/隐藏的元素是 UIView,其中包含多个集合视图和标签。

我现在正在做的是以 IB 和编程方式定义两个对象,当我需要显示一个对象时,我只需将其中一个对象的宽度设置为 0,并为另一个对象设置一个具有我想要的整个宽度的新框架。这种方法的问题在于,即使 UIView 是我想要的样子,里面的内容似乎仍保留先前的约束(居中),并且它们不会“适应”整个宽度。

当前代码:

var newFrame = self.view.frame
newFrame.origin.x = 0
newFrame.origin.y = self.blueView.frame.origin.y
newFrame.size.height = self.blueView.frame.size.height

if (showGreen){

    self.greenView.frame = newFrame
    self.greenView.hidden = false
    self.blueView.frame.size.width = 0.0
    self.blueView.hidden = true

}else{

    self.blueView.frame = newFrame
    self.blueView.hidden = false
    self.greenView.frame.size.width = 0.0
    self.greenView.hidden = true
}
Run Code Online (Sandbox Code Playgroud)

在 IB 中,我为两个视图设置了约束,使其与边距之间没有分隔。

我希望您帮助我解决此问题或以其他方式实现所需的行为。

谢谢。

当前情况和期望的行为

constraints uiview ios swift

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