我是Objective-c的新手.我想在NSString中显示更短的CGFloat值.我知道在C中很容易.但我不知道如何在Objective-c中做到这一点.例如,
CGFloat value = 0.333333;
NSLog(@"%f%%",value*100);
Run Code Online (Sandbox Code Playgroud)
它将显示33.3333%.但我想把它变成33.33%.我该怎么做?
我想从当前的视图控制器返回到以前的视图控制器.情况是这样的:A,B,C,D是视图控制器.礼物B,B呈现C,C呈现D.我知道使用代表可以从D到C,C到B,B到A.现在我想直接从D返回A. 这该怎么做?任何建议表示赞赏.
我正在开发类似navi的app.
我必须在预定时间播放声音通知.我启用了音频后台模式,但显然我无法使用NSTimer它.
我可以使用什么来在指定时间安排音频通知,因此即使应用程序进入后台也会触发?
我使用UIScrollView来显示大量图像.对于内存问题,我一次只加载三个图像.当用户轻弹到下一个(或前一个)时,我将移动两个图像并加载一个新图像.
首先,我使用scrollViewDidEndDecelerating方法来确定UIScrollView是否更改为下一页,上一页或仍然是当前.但是当你快速连续地轻弹时,scrollViewDidEndDecelerating methord将不会收到任何消息,这意味着不会被调用,而scrollViewDidEndDragging:willDecelerate仍然会收到消息.因为拖动很快,以前的减速被忽略.
因此,我想知道在快速浏览时,我在哪里可以知道视图是否会发生变化以及如何判断变化?在scrollViewDidEndDragging中:willDecelerate methord还是其他一些方法?
我有个约会.
NSLog 显示为:
2014-05-11 21:59:59 +0000
Run Code Online (Sandbox Code Playgroud)
现在我想获得相同的日期,但小时,分钟和秒设置为零:
2014-05-11 00:00:00 +0000
Run Code Online (Sandbox Code Playgroud)
我的代码:
NSCalendar *calendar = [NSCalendar currentCalendar];
[calendar setTimeZone:[NSTimeZone localTimeZone]];
NSDateComponents *components = [calendar components:(NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit) fromDate:dayOfWeek];
NSLog(@"components: %@", components);
NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setYear:[components year]];
[comps setMonth:[components month]];
[comps setDay:[components day]];
[comps setHour:0];
[comps setMinute:0];
[comps setSecond:0];
NSLog(@"New date: %@", [calendar dateFromComponents:comps]);
Run Code Online (Sandbox Code Playgroud)
但NSLog显示:
2014-05-10 22:00:00 +0000
Run Code Online (Sandbox Code Playgroud)
似乎日和小时计算错误.请注意,我在德国,但我使用,[NSTimeZone localTimeZone]因为我认为这应该返回正确的时区?