小编Gui*_*rez的帖子

如何使用Swift4中的Codable转换带有可选小数秒的日期字符串

我正在用Swift的Codable替换旧的JSON解析代码,并且遇到了一些麻烦.我想这不是一个可编码的问题,因为它是一个DateFormatter问题.

从结构开始

 struct JustADate: Codable {
    var date: Date
 }
Run Code Online (Sandbox Code Playgroud)

和一个json字符串

let json = """
  { "date": "2017-06-19T18:43:19Z" }
"""
Run Code Online (Sandbox Code Playgroud)

现在让我们解码

let decoder = JSONDecoder()
decoder.dateDecodingStrategy = .iso8601

let data = json.data(using: .utf8)!
let justADate = try! decoder.decode(JustADate.self, from: data) //all good
Run Code Online (Sandbox Code Playgroud)

但是,如果我们更改日期以使其具有小数秒,例如:

let json = """
  { "date": "2017-06-19T18:43:19.532Z" }
"""
Run Code Online (Sandbox Code Playgroud)

现在它打破了.日期有时会以小秒数回归,有时则不会.我以前解决它的方式是在我的映射代码中我有一个转换函数,它尝试使用和不使用小数秒的dateFormats.我不太确定如何使用Codable来处理它.有什么建议?

nsdateformatter swift dateformatter swift4 codable

30
推荐指数
2
解决办法
6430
查看次数

查找char是否在目标c中的字符串中

我查看了NSString类的引用,但我似乎无法找出是否有一个字符串,我可以使用什么方法来检查特定字符是否在字符串内.

例如,如果我的字符串是

NSString * string = "123.32"

if ([string hasString:@"."]) {
//do stuff
Run Code Online (Sandbox Code Playgroud)

所以我并不关心它所处的指数,但它是否有它:-)

objective-c

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

如果声明奇怪地不能正常工作......无法弄明白

所以这是一个愚蠢的问题,但由于某些原因,这对我不起作用.这是我正在尝试做的一个小程序的一小部分,我正在调试但是一个简单的if语句由于某种原因不起作用.这是以下代码:

System.out.println("Enter a command (Enqueue, Dequeue, or Quit): ");
String expr = input.next();
System.out.println(expr);
if (expr=="Enqueue") {
   System.out.println("Enqueue");}
Run Code Online (Sandbox Code Playgroud)

所以它应该只是抓取输入,如果我在提示符中键入Enqueue,它应该打印出来.问题是它没有这样做.当我检查变量expr的值时,它确实显示为字符串Enqueue但它不会进入并打印它.....奇数.我不知道有什么蠢事吗?

java

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

在 Swift 中创建通用领域存储库

我一直在努力解决一个问题,我很确定这会让我采用类型擦除技术,但我不是 100% 确定。我尝试了几次不同的时间,感觉很接近,但最终都失败了。我会尽量简化我的问题。假设你有一个实体

struct Expense {
    var id: Int?
    var amount: Double = 0
}
Run Code Online (Sandbox Code Playgroud)

和一个等效的领域对象

class RealmExpense: Object {
    let id = RealmOptional<Int>()
    let amount = RealmOptional<Double>()

    var entity: Expense {
        return Expense(id: id.value, amount: amount.value)
    }
}
Run Code Online (Sandbox Code Playgroud)

请注意,我可以使用实体变量将 RealmExpense 转换为 Expense。

然后,我有另一个协议

protocol ExpenseRepository: class {
    func getAll() -> [Expense]
    //...other CRUD methods
}
Run Code Online (Sandbox Code Playgroud)

最后,一堂课

class ExpenseRealmRepository: ExpenseRepository {
    
    private let realm = try! Realm()
    
    func getAll() -> [Expense] {
        return realm.objects(RealmExpense.self).flatMap { $0.entity }
    }

    func insert(item: …
Run Code Online (Sandbox Code Playgroud)

generics realm swift

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

使用getchar()和putchar()的非常简单的C问题

您好我正在教自己C并通过K&R书,我遇到了一些麻烦(我正在运行OS X).这是第1.5.1节"文件复制",它应该将一个字符作为输入,然后输出该字符.这是代码:

#include <stdio.h>

/* --  Copy input to output -- */ 
int main(void)
{
int c;

c = getchar();

while ( c != EOF ) {
    putchar(c);
    c = getchar;
}


}
Run Code Online (Sandbox Code Playgroud)

所以,我认为我的问题不在于代码本身,而在于编译和运行.首先,在编译时我得到以下错误

/Volumes/Goliath/Dropbox/C programs/prog1_5_1.c: In function ‘main’:
/Volumes/Goliath/Dropbox/C programs/prog1_5_1.c:12: warning: assignment makes integer from pointer without a        cast
/Volumes/Goliath/Dropbox/C programs/prog1_5_1.c:16: warning: control reaches end of non-void function
Run Code Online (Sandbox Code Playgroud)

然后当我运行输出文件(在终端中)它有一个小空间,然后当我输入一个字母时,说我输入

一个

然后我点击Return

我得到一个新的一行.如果我然后点击一个新密钥,屏幕就会开始变得疯狂,并在整个地方出现问号.

我不确定我是否有多大意义,但我发现这是一个奇怪的问题.非常感谢你提前

c putchar getchar

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

学习课程,但有一个奇怪的问题,我相信很简单

所以我正在学习如何使用类和python,我正在创建一个简单的程序来执行有理数的算术运算.我正在创建一个名为ArithmeticOperations的类.在这个类中,我有一个主函数定义,它提示用户输入2个有理数的分子和分母,然后根据用户的选择执行和,差,乘积或商.操作在单独的功能中执行.现在我已经创建了main函数和product函数,但是当我运行它时,我得到一个错误

TypeError:product()只需要5个参数(给定6个参数)

我确信这很简单,但我是新手,所以我在调试时遇到了一些麻烦.这是我目前的计划:

class ArithmeticOperations:

    # Given numbers u0, v0, and side, design a pattern:
    def product(self,n1, d1, n2,d2):
        self.numerator = n1*n2;
        self.denominator = d1*d2;
        print n1,'/',d1,'*',n2,'/',d2,'=',self.numerator,'/',self.denominator; 


    def main(self):
        n1 = input('Enter the numerator of Fraction 1: ');
        d1 = input('Enter the denominator of Fraction 1: ');
        n2 = input('Enter the numerator of Fraction 2: ');
        d2 = input('Enter the denominator of Fraction 2: ');
        print '1: Add \n 2: Subtract\n 3: Multiply\n 4: Divide' ;
        question = input('Choose an …
Run Code Online (Sandbox Code Playgroud)

python

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

在Ruby中使用每个

我开始学习ruby并试图找出一种方法,如果我有一个16个数字的数组,只使用每种方法一次打印这些数字4.我可以通过循环很容易地做到这一点,但我对Ruby中的每个方法都缺乏充分的理解,所以这给我带来了一些麻烦.

我有以下内容:

x=[*1..16]
index=0
x.each do |element|
  puts element[index]
  index=index+3
end
Run Code Online (Sandbox Code Playgroud)

现在显然这是完全错误的,我知道,但我想在这里放一些东西.一点建议会很棒.

谢谢

ruby

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