gpt4 book ai didi

javascript - 将 javascript 函数转换为 Obj-C 函数

转载 作者:行者123 更新时间:2023-12-03 21:01:10 25 4
gpt4 key购买 nike

我想在我的 Obj-C 应用程序中使用一堆用 Javascript 编写的函数。我制作了一个头文件并转换了第一个,但卡在了第二个上。这是我开始时所做的以及到目前为止我所做的不起作用...

function calcDayOfWeek(juld)
{
var A = (juld + 1.5) % 7;
var DOW = (A==0)?"Sunday":(A==1)?"Monday":(A==2)?"Tuesday":(A==3)?"Wednesday":(A==4)?"Thursday":(A==5)?"Friday":"Saturday";
return DOW;
}

...以及我的尝试:

NSString calcDayOfWeek(float julianDay)
{
float A = (julianDay + 1.5) % 7;
NSString DOW = (A==0)?"Sunday":(A==1)?"Monday":(A==2)?"Tuesday":(A==3)?"Wednesday":(A==4)?"Thursday":(A==5)?"Friday":"Saturday";
return DOW;
}

它应该根据儒略日数字的输入返回一个包含星期几的字符串。

编辑:根据 Yuji 的回答,这是有效的...

NSString* calculateDayOfWeek(float julianDay) {
int a = fmod(julianDay + 1.5, 7);
NSString* dayOfWeek = (a==0)?@"Sunday":(a==1)?@"Monday":(a==2)?@"Tuesday":(a==3)?@"Wednesday":(a==4)?@"Thursday":(a==5)?@"Friday":@"Saturday";
return dayOfWeek;
}

最佳答案

您首先需要学习 Objective-C 的句法和文法。 该功能将是

NSString* calcDayOfWeek(float julianDay)
{
int A = ((int)(julianDay + 1.5)) % 7;
NSString* DOW = (A==0)?@"Sunday":(A==1)?@"Monday":(A==2)?@"Tuesday":(A==3)?@"Wednesday":(A==4)?@"Thursday":(A==5)?@"Friday":@"Saturday";
return DOW;
}
  • 在 Objective-C 中,对象的变量是指针,而不是对象本身。您需要 NSString* 而不是 NSString
  • @"..." 是作为对象的 Objective-C 字符串。 "..." 是一个 C 字符串,它只是 char*
  • 我建议不要将 == 用于 float。如果两个 float 相差 .00000001 会怎样?好吧,% 运算符会自动为您提供整数,但我仍然不喜欢它。

但是,您不应该重新发明轮子。 Cocoa 有一个 API 可以为您进行日历转换。参见 Date and Time Programming Topics.

关于javascript - 将 javascript 函数转换为 Obj-C 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4342360/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com