我在Objective-C中有以下代码,将秒数(int)转换为"x小时y分钟z秒"形式的日期字符串.8812秒应该返回2小时26分52秒,但它返回2小时26分51秒.
这是麻烦的线:
float timeInSeconds = (60 * ((((seconds / 3600.0) - (seconds / 3600)) * 60.0) - (int)(((seconds / 3600.0) - (seconds / 3600)) * 60.0)));
Run Code Online (Sandbox Code Playgroud)
如果我这样,结果为52.0 NSLog.但是,如果我这样做:
int timeInSeconds = (int)(60 * ((((seconds / 3600.0) - (seconds / 3600)) * 60.0) - (int)(((seconds / 3600.0) - (seconds / 3600)) * 60.0)));
Run Code Online (Sandbox Code Playgroud)
我得到51 NSLog.为什么呢?
当我刷UITableViewCell(其对象来自Core Data)时,它将单元格的对象设置为"read"(代码:isRead变为YES).
这是这样完成的:
- (void)swipedToMarkCellRead:(Article *)article {
if ([article.isRead isEqualToNumber:@YES]) {
article.isRead = @NO;
}
else {
article.isRead = @YES;
}
NSManagedObjectContext *context = self.managedObjectContext;
NSError *error;
[context save:&error];
}
Run Code Online (Sandbox Code Playgroud)
但是,下次应用程序加载文章时,将返回未读状态(或isRead等于NO).我isRead在Core Data中创建了一个瞬态属性,所以无论什么时候访问它我都可以做它,我操纵它:
- (NSNumber *)isRead {
[self willAccessValueForKey:@"isRead"];
NSNumber *isRead = [self primitiveValueForKey:@"isRead"];
[self didAccessValueForKey:@"isRead"];
// If at 100% progress (finished) or it's already marked as read
if ([self.progress intValue] >= 1 || [isRead boolValue]) {
isRead = @YES;
} …Run Code Online (Sandbox Code Playgroud) 我有一个叫做ImageGalleryPageViewController子类的类UIPageViewController.在我的init方法中,我调用:
self = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStyleScroll navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal options:nil];
Run Code Online (Sandbox Code Playgroud)
但我得到这个警告:
从'UIPageViewController*'分配给'ImageGalleryPageViewController*'的指针类型不兼容
我应该只是投出结果[[alloc] init]吗?这看起来很奇怪,难道不应该认识到我是一个子类而不是抱怨吗?
cocoa-touch objective-c uiviewcontroller ios uipageviewcontroller
char *start = str;
char *end = start + strlen(str) - 1; /* -1 for \0 */
char temp;
Run Code Online (Sandbox Code Playgroud)
如何找到字符串的结尾?如果字符串是giraffe,start持有该字符串,那么你有:
char *end = "giraffe" + 7 - 1;
这怎么会给你长颈鹿的最后一个字符?(e)
我有以下内容enum:
typedef NS_ENUM(NSUInteger, GraphType) {
GraphTypeRawData,
GraphTypeFilteredData
};
Run Code Online (Sandbox Code Playgroud)
编译器在没有警告的情况下接受我将其声明为属性原语或指针:
@property (nonatomic, assign) GraphType graphType;
Run Code Online (Sandbox Code Playgroud)
VS
@property (nonatomic, assign) GraphType *graphType;
Run Code Online (Sandbox Code Playgroud)
哪个是正确的?(为什么?)
说我有一个AnyObject我收到的阵列,但我很肯定他们是String,例如.
我试过了
for string in AnyObjectArray { ... }
Run Code Online (Sandbox Code Playgroud)
和
for string as String in AnyObjectArray { ... }
Run Code Online (Sandbox Code Playgroud)
两者都给我错误.我最好怎么做?
我只是想UIWindow暂时将我置于状态栏上方以达到警示目的.
代码很简单:
let newwindow = UIWindow(frame: UIScreen.mainScreen().bounds)
newwindow.hidden = false
newwindow.backgroundColor = UIColor.greenColor()
newwindow.windowLevel = UIWindowLevelStatusBar + 1.0
newwindow.makeKeyAndVisible()
newwindow.hidden = false
Run Code Online (Sandbox Code Playgroud)
但是,当我把它放在viewDidAppear我的根视图控制器中时,我从未看到过这个窗口.
我究竟做错了什么?
我在Go上关注PostgreSQL的这个教程,它有以下几行:
bks := make([]*Book, 0)
Run Code Online (Sandbox Code Playgroud)
这是更大的代码块的一部分:
bks := make([]*Book, 0)
for rows.Next() {
bk := new(Book)
err := rows.Scan(&bk.isbn, &bk.title, &bk.author, &bk.price)
if err != nil {
log.Fatal(err)
}
bks = append(bks, bk)
}
Run Code Online (Sandbox Code Playgroud)
为什么作者传入0 make?我明白这是长度,但为什么长度为0?为什么它是一个指针数组而不是一系列的书?你不想要一个切片,所以你可以任意插入书籍吗?
http://web.cs.dal.ca/~selig/serverside/assignment1/
在这里,在最底部的单选按钮上查看它.
这是我的jQuery(非常简单):
$(document).ready(function() {
// Reveals the email address field when option is selected
$('#yes-radio').click(function() {
$('.email-field').show(200);
});
$('#no-radio').click(function() {
$('.email-field').hide(200);
});
});
Run Code Online (Sandbox Code Playgroud)
任何人都可以告诉我为什么这样做?
我很只是想保存NSMutableArray/ NSArray的structS IN NSUserDefaults:
typedef struct {
int key;
} provision;
provision p1;
p1.key = 4;
NSValue *p1Value = [NSValue value:&p1 withObjCType:@encode(provision)];
provision p2;
p2.key = 5;
NSValue *p2Value = [NSValue value:&p2 withObjCType:@encode(provision)];
NSMutableArray *provisions = [[NSMutableArray alloc] init];
[provisions addObject:p1Value];
[provisions addObject:p2Value];
[[NSUserDefaults standardUserDefaults] setObject:provisions forKey:@"Provisions"];
Run Code Online (Sandbox Code Playgroud)
我按照指南这里存储了所有的结构NSValue.但是最后一行会导致运行时错误:
*因未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'* - [NSUserDefaults setObject:forKey:]:尝试为关键项目插入非属性列表对象("<04000000>","<05000000>")
我究竟做错了什么?
我希望用户能够单击提交,但如果没有填写正确的字段,则不会通过,并且会出现错误.这可能吗?我知道如何做错误部分,但阻塞提交部分很烦人.