如果我理解正确,使用System.nanoTime()是一种更准确的方法来保持标记当前时间System.currentTimeInMillis(),即使系统时间已更改.那么为什么当我将long值转换nanoTime()为Calendar对象时,输出是错误的?
import java.util.Calendar;
public class Test {
public static void main(String[] args) {
Calendar c = Calendar.getInstance();
c.setTimeInMillis(System.currentTimeMillis());
System.out.println(c.get(Calendar.MONTH) + " " + c.get(Calendar.DATE) + " " + c.get(Calendar.YEAR) +
" " + c.get(Calendar.HOUR_OF_DAY) + ":" + c.get(Calendar.MINUTE) + ":" + c.get(Calendar.SECOND)
+ ":" + c.get(Calendar.MILLISECOND));
}
}
Run Code Online (Sandbox Code Playgroud) 我正在绘制一个相当简单的自定义UITableViewCell - 左侧的缩略图,右侧的名称和链接标签.我希望我的名字和链接标签是单行的,如果文本超出单元格的宽度,则在尾部截断.我很确定我正确地添加了约束,但我的名字和链接标签不会尊重它们.
这就是运行iOS 8的iPhone 4S上的单元格外观:

在我的代码中,我将名称和链接标签的10点尾随约束添加到superview(单元格contentView),然而,请注意,即使在横向,iOS似乎也不遵守约束.
有人能告诉我我做错了什么吗?这是我整个单元格的代码.我以编程方式创建视图,并且在表视图单元格的初始化程序中具有Autolayout约束.
#import "PopularWikiCell.h"
// Models
#import "Wiki.h"
// Pods
#import "UIImageView+AFNetworking.h"
// Constants
static const CGFloat kPadding = 10;
static const CGFloat kImageSize = 100;
const CGFloat kPopularWikiCellHeight = kImageSize + kPadding * 2;
@interface PopularWikiCell ()
@property (nonatomic, strong) UIImageView *thumbnailView;
@property (nonatomic, strong) UILabel *nameLabel;
@property (nonatomic, strong) UILabel *linkLabel;
@end
@implementation PopularWikiCell
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
// Initialise the subviews. …Run Code Online (Sandbox Code Playgroud) 我在Swift中有一个switch语句,如下所示:
switch tuple {
case (let someObject, let current, nil):
return true
// Other cases...
}
Run Code Online (Sandbox Code Playgroud)
元组的类型的(SomeObject?, SomeObject, SomeObject?),和我说的英语是:匹配其中前两个元素的情况下不为零,而第三个(可选的)是零.
Xcode的7告诉我,因为我没有使用绑定someObject和current,我应该用下划线代替它.但是如果我用下划线替换元组中的第一个元素,它是否也会匹配第一个元素为nil的情况,因为这_意味着编译器会忽略该值?对于第一个元素为零的情况,我有一个单独的案例.
为了记录,看起来我的代码仍然按照我的预期工作,但我想确定,我无法在任何地方找到任何文档.
该指南告诉我有四个文件,TBXML.h,TBXML.m,NSDataAdditions.h,和NSDataAdditions.m,但后两者都无处可寻GitHub的回购.
我试图运行示例项目TBXML-Books,希望复制TBXML如何导入项目,但它也不能在Xcode 5中成功构建.它找不到libTBXML-iOS.a.
有人帮忙吗?提前致谢.
我们正在编写一个Android应用程序,我们计划在安装了Jelly Bean(API 16)的至少Froyo(API 8)的Android设备上提供,但我们不希望将其提供给API级别12和13现在,它们分别是Honeycomb 3.1和3.2.
基本上,我们只是避开Android平板电脑.有没有办法跳过这些操作系统?带AndroidManifest.xml文件的东西?
System.currentTimeMillis()当我注意到它的Javadoc中出现以下段落时,我正准备在Eclipse中使用:
Returns the current system time in milliseconds since January 1, 1970
00:00:00 UTC. This method shouldn't be used for measuring timeouts or
other elapsed time measurements, as changing the system time can affect
the results.
Run Code Online (Sandbox Code Playgroud)
所以这意味着System.currentTimeMillis()如果我想专门维护对当前这个时间点的引用,我就不能依赖它.那么,最准确的方法是什么?这三种方法是否标记当前时间彼此不同?
更新:我要做的是在两个单独的程序运行中测量两个时间点之间的差异.我担心的是,如果我使用System.currentTimeMillis()并且用户在第一次运行后使用系统时间,我可能会在第二次运行期间获得奇怪的意外值.
我在我的Android应用程序中使用Jackson.我有一个BroadcastReceiver传入调用来保存有关整个调用的信息,然后我将它保存到JSON数组中的JSON对象.
然后,我得到下面的例外,它指向我调用的行ObjectMapper mapper = new ObjectMapper().因为我没有写这些课,所以我不知道该怎么办.救命?
09-04 09:08:58.220: E/AndroidRuntime(4445): FATAL EXCEPTION: main
09-04 09:08:58.220: E/AndroidRuntime(4445): java.lang.ExceptionInInitializerError
09-04 09:08:58.220: E/AndroidRuntime(4445): at com.ourcompany.appname.IncomingCallDetector.saveLog(IncomingCallDetector.java:80)
09-04 09:08:58.220: E/AndroidRuntime(4445): at com.ourcompany.appname.IncomingCallDetector.onReceive(IncomingCallDetector.java:70)
09-04 09:08:58.220: E/AndroidRuntime(4445): at android.app.ActivityThread.handleReceiver(ActivityThread.java:2816)
09-04 09:08:58.220: E/AndroidRuntime(4445): at android.app.ActivityThread.access$3200(ActivityThread.java:126)
09-04 09:08:58.220: E/AndroidRuntime(4445): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2088)
09-04 09:08:58.220: E/AndroidRuntime(4445): at android.os.Handler.dispatchMessage(Handler.java:99)
09-04 09:08:58.220: E/AndroidRuntime(4445): at android.os.Looper.loop(Looper.java:123)
09-04 09:08:58.220: E/AndroidRuntime(4445): at android.app.ActivityThread.main(ActivityThread.java:4633)
09-04 09:08:58.220: E/AndroidRuntime(4445): at java.lang.reflect.Method.invokeNative(Native Method)
09-04 09:08:58.220: E/AndroidRuntime(4445): at java.lang.reflect.Method.invoke(Method.java:521)
09-04 09:08:58.220: E/AndroidRuntime(4445): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
09-04 09:08:58.220: E/AndroidRuntime(4445): at …Run Code Online (Sandbox Code Playgroud) 我需要创建一个BroadcastReceiver可以在手机接听或拨打电话时收听的内容,因此我可以记录它何时开始以及何时结束.我意识到两个接收器看起来几乎相同,所以不是BroadcastReceiver为传入和传出调用创建两个单独的s,我可以为两者创建一个并使我的操作取决于触发的事件.
我注册的intent-filterS代表android.intent.action.PHONE_STATE和android.intent.action.NEW_OUTGOING_CALL在清单中,但我怎么从找出onReceive()什么样的Intent被解雇?
@Override
public void onReceive(Context context, Intent intent) {
Bundle extras = intent.getExtras();
// get the intent fired--incoming or outgoing call?
// then, save it in a variable and perform corresponding actions
}
Run Code Online (Sandbox Code Playgroud) 我UIButton在我的应用程序中进行了子类化,很多时候,即使我按下按钮,高亮颜色也会保留.我无法弄清楚究竟是什么导致这种情况,因为它似乎只是偶然发生,但它似乎发生在大约50%的时间.我非常确定这是可重复的.当我在a中有一个按钮UITableViewCell并且在表视图仍在滚动时我点击它时,我经常会发生这种情况.
我在覆盖setHighlighted子类中的方法的方式有什么问题吗?这是我的实施:
@implementation SCPFormButton
- (id)initWithFrame:(CGRect)frame label:(NSString *)label
{
self = [super initWithFrame:frame];
if (self) {
UILabel *buttonLabel = [[UILabel alloc] init];
buttonLabel.attributedText = [[NSAttributedString alloc] initWithString:[label uppercaseString] attributes:kButtonLabelAttributes];
[buttonLabel sizeToFit];
buttonLabel.frame = CGRectMake(kMaxWidth / 2 - buttonLabel.frame.size.width / 2, kStandardComponentHeight / 2 - buttonLabel.frame.size.height / 2, buttonLabel.frame.size.width, buttonLabel.frame.size.height);
[self addSubview:buttonLabel];
self.backgroundColor = kFormButtonColorDefault;
}
return self;
}
- (void)setHighlighted:(BOOL)highlighted
{
self.backgroundColor = highlighted ? kFormButtonColorHighlighted : kFormButtonColorDefault;
[self setNeedsDisplay];
}
@end
Run Code Online (Sandbox Code Playgroud)