我有一个java.util.Timer固定的间隔运行.我添加了一个Runtime#addShutdownHook,当VM正常结束或异常结束时它会关闭.然而,保持VM活着时main终止,除非我坚持做一个System.exit的main.我有什么方法可以检查我是否是最后一个Thread站立,或者其他一些方法来避免改变main那些在结束时正常退出的方式?
注意:我知道很多人认为java.util.Timer已弃用(不是),但除非你的选择帮助我解决这个问题......
[这是关于最新技术的经验问题:我不是在问Java是否比在JVM中运行的动态语言更酷或更酷.
除了性能是主要决策因素的情况之外,公司/开发人员是否仍然愿意选择Java而不是Groovy,JRuby或Jython?
编辑:如果答案是"是",为什么?
个人注意:我要问的原因是,虽然我在Ruby中做了一些我的专业工作(现在不是JRuby),但在我的个人项目中,我使用的是Java.虽然我在Groovy中编写了非平凡的应用程序,但我更喜欢Java,但我想知道我是否应该克服它并在Groovy中做所有事情.我喜欢Java,因为我觉得静态打字可以节省我的时间并帮助重构.(不,我不熟悉Scala.)但是,我觉得这个非常经验的,关于主题的编程问题可能会为我的决定提供信息.
我在代码中做了很多这样的事情:
self.sliderOne.frame = CGRectMake(newX, 0, self.sliderOne.frame.size.width, self.sliderOne.frame.size.height);
Run Code Online (Sandbox Code Playgroud)
有什么方法可以避免这种繁琐的代码吗?我尝试过这种类型的东西:
self.sliderOne.frame.origin.x = newX;
Run Code Online (Sandbox Code Playgroud)
但是我收到了一个Lvalue required as left operand of assignment错误.
[我可能误解了整个主题,因为我已经成长为语言,允许开发人员几乎完全忽略处理器架构,如Java,除了在某些特定情况下.如果我有一些错误的概念,请纠正我.]
在这里阅读似乎建议使用CGFloat代替浮点数,因为它可以为我的代码提供面向未来的不同处理器体系结构(64位句柄浮动不同).假设这是正确的,那么为什么UISlider,例如,float直接使用(对于值)?对我来说,阅读它们float并将其转换为a CGFloat是不是错(或其他),因为无论如何,如果架构发生变化,我的代码是不正确的?
我有两个不同的项目:
一个问题是我不希望插件必须显示它们的来源.他们会被GPL许可证"感染"吗?它们将根据API进行编译,并且不需要编译程序的源代码.
另一个问题是LGPL的所有关于"静态链接"的讨论:程序和API都是用Java编写的.这有关系吗?
无论如何,我的基本问题是:使用GPL发布本程序及其与LGPL的公共API是否有意义?
我不收拾单一对象生活在其中的应用程序的生命中dealloc.我应该有什么理由吗?
- (void) dealloc
{
// never deallocs
[super dealloc];
}
Run Code Online (Sandbox Code Playgroud)
我有点假设iOS让我有足够的空间来清理我的应用程序的所有内存.是对的吗?
我可以使用适当的Obj-C语法重做这个方法,但我想知道如何从Obj-C调用它.该方法看起来像这样
@interface YarMidiCommon : NSObject
static
MIDIPacketList *makePacketList(Byte *packetBuffer, const UInt8 *data, UInt32 size);
@end
Run Code Online (Sandbox Code Playgroud)
但我不知道如何调用该方法.我试过了
Byte packetBuffer[size+100];
MIDIPacketList *packetList = makePacketList(packetBuffer, bytes, size);
Run Code Online (Sandbox Code Playgroud)
但错误是"有内部联系,但没有定义." 如果不诉诸"适当的"Obj-C语法,这可能吗?
为了记录,我想模仿的方法就像是
+ (MIDIPacketList*) makePacketListWithPacketBuffer:(Byte*)packetBuffer data:(const UInt8 *)data size:(UInt32)size;
Run Code Online (Sandbox Code Playgroud)
这是冗长而烦人的,因为这里的一切都是C无论如何.
我正在尝试添加和删除应用程序包中的应用程序.如果我在现场看应用程序包,我看不到Edit按钮(而是有一个Arrange按钮).如果我从销售中删除App Bundle(取消选中"已售出"),我会收到一个edit按钮.然后,我将一个应用程序添加到捆绑包(或从捆绑包中删除一个应用程序),但在保存时,消息是:
保存或更新捆绑包时出错:尝试在不允许编辑的捆绑包中添加或删除应用程序.
如何在Tunes Connect中添加或删除应用包中的应用?