【发布时间】:2016-02-03 03:34:30
【问题描述】:
我想检查从 MySQL-database 接收到的数据是否可以转换为 Double,如果可以,我想将其附加到数组中。 p>
从另一个question 我得到了以下代码:
extension String {
struct NumberFormatter {
static let instance = NSNumberFormatter()
}
var doubleValue:Double? {
return NumberFormatter.instance.numberFromString(self)?.doubleValue
}
var integerValue:Int? {
return NumberFormatter.instance.numberFromString(self)?.integerValue
}
}
这是我关心的代码(在 for-loop 中):
if let value = datas[i].puls.doubleValue {
pulsWerte.append(value)
print(datas[i].puls)
}else {
badIndex.append(i)
continue
}
如果我的数据库条目是NULL,我的程序应该在else-分支中继续。但是,如果我测试这种情况,我最终会遇到运行时错误和以下两条消息:
-[NSNull length]: unrecognized selector sent to instance 0x1451238
&
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSNull length]: unrecognized selector sent to instance 0x1451238'
有人知道我的错误吗?
更新
这就是我的 datas-array 的创建方式:
我使用 Objectiv-C 下载和分配数据。
在我的 Data.h 文件中,我创建了我的 Data-class。
@interface Data : NSObject
@property (nonatomic, strong) NSString *sozialversicherungsnummer;
@property (nonatomic, strong) NSString *messzeitpunkt;
@property (nonatomic, strong) NSString *puls;
@property (nonatomic, strong) NSString *sauerstoffgehalt;
@end
在我的 HomeModel.m 中,我创建了一个名为“_data”的 NSMutableArray。下载完成后,这个数组填充如下:
for (int i = 0; i < jsonArray.count; i++)
{
NSDictionary *jsonElement = jsonArray[i];
// Create a new data object and set its props to JsonElement properties
Data *newData = [[Data alloc] init];
newData.sozialversicherungsnummer = jsonElement[@"Sozialversicherungsnummer"];
newData.messzeitpunkt = jsonElement[@"Messzeitpunkt"];
newData.puls = jsonElement[@"Puls"];
newData.sauerstoffgehalt = jsonElement[@"Sauerstoffgehalt"];
// Add this question to the locations array
[_data addObject:newData];
}
当这一步完成后,我通过一个名为 "itemsDownloaded" 的函数在名为 "items" 的参数名称下获得了这个 "_data"-array 。
现在我在我的 Swift-文件中调用这个函数,在这里我可以将下载的 "items" 进行 typecast 为 "Data" (我自己创建的课程)。
func itemsDownloaded(items: [AnyObject]!) {
let datas = items as! [Data]
.
.
.
【问题讨论】: