我们不断得到一个随机的,奇怪的崩溃NSDateFormatter.相关的堆栈跟踪是:
Program received signal: “EXC_BAD_ACCESS”.
#0 0x00000005 in ?? ()
#1 0x0213e3c3 in udat_parse ()
#2 0x01d4e1ca in CFDateFormatterGetAbsoluteTimeFromString ()
#3 0x01d4e225 in CFDateFormatterCreateDateFromString ()
#4 0x003e2608 in getObjectValue ()
#5 0x003e2921 in -[NSDateFormatter getObjectValue:forString:errorDescription:] ()
#6 0x003e21cd in -[NSDateFormatter dateFromString:] ()
Run Code Online (Sandbox Code Playgroud)
日期格式化程序仍在内存中(即未释放或损坏).我唯一能想到的是崩溃时的字符串不符合格式,但我怀疑这会使格式化程序完全崩溃.(事先检查格式是非常简单的).
有什么想法吗?
multithreading exc-bad-access objective-c nsdateformatter ios
我需要将一个字符串转换为一个日期时间对象,以及小数秒.我遇到了各种各样的问题.
通常,我会这样做:
>>> datetime.datetime.strptime(val, "%Y-%m-%dT%H:%M:%S.%f")
Run Code Online (Sandbox Code Playgroud)
但错误和旧文档告诉我python2.5的strptime没有%f ...
进一步调查,似乎App Engine的数据存储不喜欢小数秒.在编辑数据存储区实体时,尝试将.5添加到datetime字段会给出以下错误:
ValueError: unconverted data remains: .5
Run Code Online (Sandbox Code Playgroud)
我怀疑不支持小数秒......所以这只是在数据存储区查看器上,对吧?
有没有人绕过这个问题?我想使用本机日期时间对象...我宁愿不存储UNIX时间戳...
谢谢!
编辑:感谢Jacob Oscarson的.replace(...)提示!
要记住的一件事是在喂入之前检查nofrag的长度.不同的来源使用不同的精度秒.
对于那些寻找类似内容的人来说,这是一个快速功能:
def strptime(val):
if '.' not in val:
return datetime.datetime.strptime(val, "%Y-%m-%dT%H:%M:%S")
nofrag, frag = val.split(".")
date = datetime.datetime.strptime(nofrag, "%Y-%m-%dT%H:%M:%S")
frag = frag[:6] # truncate to microseconds
frag += (6 - len(frag)) * '0' # add 0s
return date.replace(microsecond=int(frag))
Run Code Online (Sandbox Code Playgroud) 这个问题跟进在Python中创建命名空间包的方法以及如何在Python中创建命名空间包?.
您不能在命名空间包中包含任何其他代码和数据
__init__.py.尽管它可能在开发期间或项目作为.egg文件安装时起作用,但在使用"系统"打包工具安装项目时它将无法工作 - 在这种情况下,__init__.py文件将不会被安装,更不用说执行了.
这似乎使得无法拥有一个带有独立分布式扩展子包的"主库"包.我想要的是能够:
定义一个核心库包,使用如下:
import mylibrary
mylibrary.some_function()
Run Code Online (Sandbox Code Playgroud)允许库扩展,单独打包和分发,使用如下:
import mylibrary.myextension
mylibrary.myextension.some_other_function()
Run Code Online (Sandbox Code Playgroud)我希望能够使用命名空间包来实现这一点,但基于上面的问题和链接,似乎并非如此.这可以完成吗?
我有一个 C++ 项目(开源),默认情况下不需要删除调试符号。有很多测试可执行文件,在 OS X 上生成了很多 dSYM 文件。我尝试过 -g3 作为 g++ 标志,但无济于事。有想法吗?
谢谢!胡安
如何在 XPath 中使用递归 AND 条件选择?
例如,给定此文档:
<root xmlns:foo="http://www.foo.org/" xmlns:bar="http://www.bar.org">
<file name="foo.mp4">
<chunks>
<file>
<chunks>
<file>
<chunks>
<file>1</file>
<file>2</file>
<file>3</file>
<file>4</file>
</chunks>
</file>
<file>
<chunks>
<file>5</file>
<file>6</file>
<file>7</file>
<file>8</file>
</chunks>
</file>
</chunks>
</file>
<file>
<chunks>
<file>
<chunks>
<file>9</file>
<file>10</file>
<file>11</file>
<file>12</file>
</chunks>
</file>
<file>
<chunks>
<file>13</file>
<file>14</file>
<file>15</file>
<file>16</file>
</chunks>
</file>
</chunks>
</file>
</chunks>
</file>
</root>
Run Code Online (Sandbox Code Playgroud)
我只想选择:
<file>1</file>
<file>2</file>
<file>3</file>
<file>4</file>
Run Code Online (Sandbox Code Playgroud)
所以,实际上是这样的:
//[name="foo.mp4"]/chunks/*[1]/chunks/*[1]/*
Run Code Online (Sandbox Code Playgroud)
但采用通用方法——即可以覆盖更深嵌套对象的方法。像这样的东西:
//[name="foo.mp4"]/(chunks/*[1]/)+/*
Run Code Online (Sandbox Code Playgroud)
(cond)+不是 XPath 语法,而是我想要的类似正则表达式的表示。
是否可以将objective-c中选择器的返回类型设置为类本身?
例如,是否可以执行以下操作:
+ ([self class] *) selectorName;
Run Code Online (Sandbox Code Playgroud)
所以给定一个超级类如:
@interface MyClass : NSObject {}
+ (MyClass *) instanceOfMyClass;
@end
@implementation MyClass
+ (MyClass *) instanceOfMyClass {
return [[[[self class] alloc] init] autorelease];
}
@end
Run Code Online (Sandbox Code Playgroud)
在执行以下操作时,子类不需要强制转换返回值:
@implementation MySubClass
+ (MySubClass *) specialInstanceOfMySubClass {
MySubClass *instance = [[self class] instanceOfMyClass];
instance.special = YES;
return instance;
}
@end
Run Code Online (Sandbox Code Playgroud)
换句话说,我试图揭示静态方法返回类或其子类的实例这一事实.否则,子类需要知道接口中未提供的信息.
谢谢!