iphone - 如何从 as 和 id 传入的整数获取 NSDate?

标签 iphone objective-c casting nsdate

这让我抓狂,所以我希望有人可以帮助 Objective-C 菜鸟解决这个问题。这是交易:

我正在使用 Titanium Appcelerator 开发一个 iPhone 应用程序,并且我正在尝试在 XCode 中创建一个附加模块,该模块将允许我将事件发送到 iPhone 日历。我想做的是计算自 2001 年 1 月 1 日(GMT)以来的秒数日期和时间,并将其直接发送到日历,而不必弄乱似乎总是返回的字符串到日期的内容不合时机。到目前为止,我还无法将整数放入事件日期字段,这两个字段都是 NSDate 类型。

Titanium 从 Javascript 获取参数并将其编译为对象代码,因此我可以像这样调用我的“cal”对象:

var startDate = 316367923;
var endDate = 316367923;    
var results = cal.newEvent(startTime,endTime)

。 。 。这就是“cal”对象接收该调用的方式:

-(BOOL)newEvent:(id)args {
    id startDate = [args objectAtIndex:0];
    id endDate = [args objectAtIndex:1];
    ...

我希望将这些整数放入事件对象中:

EKEventStore *eventDB = [[EKEventStore alloc] init];
EKEvent *theEvent  = [EKEvent eventWithEventStore:eventDB];
...
theEvent.startDate = [[NSDate alloc] initWithTimeIntervalSinceReferenceDate: (int) startDate];
theEvent.endDate   = [[NSDate alloc] initWithTimeIntervalSinceReferenceDate: (int) endDate];

编译时没有错误,但仍然导致我的应用程序崩溃,所以我认为我的理解中缺少一些东西。知道我哪里出错了吗?

谢谢

标记

最佳答案

很可能“args”是一个 NSArray,因此 startDate 和 endDate 是对象,而不是文字。您可能想做类似的事情:

theEvent.startDate = [[NSDate alloc] initWithTimeIntervalSinceReferenceDate:[startDate intValue]];

如果例如startDate 是一个 NSNumber。否则,请查看 Titanium 文档以找出传入的数字类型。

关于iphone - 如何从 as 和 id 传入的整数获取 NSDate?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4649339/

相关文章:

iphone - ARC 语义问题 'UITableView' 没有可见的@interface 声明选择器 'cellForRowAtIndexPath:'

iphone - iOS 应用程序安全的最佳实践

iPhone SDK - 这个控件是什么?是习俗吗?

C++ ulong到类方法指针并返回

ios - 不同设备的不同设置?

iOS - 动画 UIButton ImageView 图像导致按钮在之后为 'selected'

ios - NSTimer火特定代码,而不是选择器

objective-c - iOS 上的简单多点触控绘图应用程序 : Too slow (because drawRect() not additive ? )

c++ - Qt/C++ : Is "static_cast" ok for casting in this snippet of code?

c++ - 将单个属性类转换为属性类型