我得到了这个代码,如果设备是横向左/右或倒置它旋转并显示另一个视图控制器.但如果它朝上或面朝下,那么如何判断它是横向模式还是纵向?因为我只想面朝上或朝下并以横向模式旋转
- (void)viewDidAppear:(BOOL)animated
{
UIDeviceOrientation orientation = [[UIDevice currentDevice]orientation];
NSLog(@"orientation %d", orientation);
if ((orientation == 2) || (orientation == 3) || (orientation == 4))
{
[self performSegueWithIdentifier:@"DisplayLandscapeView" sender:self];
isShowingLandscapeView = YES;
}
}
Run Code Online (Sandbox Code Playgroud) 帮助我理解这段代码的工作原理.它基本上将逗号添加到一串数字中.因此,如果用户键入1到3位数字,它将保持不变.对于四位数字,它会添加一个逗号
等等.这是代码:
private String addCommasToNumericString (String digits)
{
String result = "";
int len = digits.length();
int nDigits = 0;
for (int i = len - 1; i >= 0; i--)
{
result = digits.charAt(i) + result;
nDigits++;
if (((nDigits % 3) == 0) && (i > 0))
{
result = "," + result;
}
}
return (result);
}
Run Code Online (Sandbox Code Playgroud)
I'll解释我不理解的是
所述for环路基本上计数用户已写入到避免将逗号所述第一数量(例如,1111)之前的数目的长度.虽然i小于它减去的字符串的长度1.
result返回位置处的char i,因为它向下计数它会从右向左返回"相反"的字符.
nDigits0通过循环在每次迭代的初始值上加1 . …
currentProfile.getFriends()method返回ArrayList上的Iterator.它按预期工作,但编译器在将其分配给另一个迭代器时给我一个友好的警告:iterator is a raw type. References to generic type Iterator <E> should be parameterized
我很少或根本不知道这意味着什么,关心开导我?如果我的描述不够清楚,这就是我在做的事情Iterator friendList = currentProfile.getFriends();
我不知道问题的原因是什么,玩家试图播放它崩溃的测试音频文件的那一刻,但只在模拟器中.在真实设备上运行正常.如果你想看看,我已经粘贴了下面的代码,包括它给我的小调试信息...如果我找不到这个崩溃的起源,它会通过Apple的QA程序,只要它运行良好在设备本身?

可能这可能是 - >未知类是问题?
它[p play]在这种方法中崩溃:
-(void)startPlaybackForPlayer:(AVAudioPlayer*)p
{
if ([p play])
{
[self updateViewForPlayerState:p];
}
else
NSLog(@"Could not play %@\n", p.url);
}
Run Code Online (Sandbox Code Playgroud)
-
#import "AudioPlayerViewController.h"
@interface AudioPlayerViewController ()
{
//AVAudioPlayer *player;
}
@property (nonatomic,strong) AVAudioPlayer *player;
@end
@implementation AudioPlayerViewController
-(void)updateCurrentTimeForPlayer:(AVAudioPlayer *)p
{
self.currentTime.text = [NSString stringWithFormat:@"%d:%02d", (int)p.currentTime / 60, (int)p.currentTime % 60, nil];
self.progressBar.value = p.currentTime;
}
- (void)updateCurrentTime
{
[self updateCurrentTimeForPlayer:self.player];
}
- (void)updateViewForPlayerState:(AVAudioPlayer *)p
{
[self updateCurrentTimeForPlayer:p];
if (self.updateTimer)
[self.updateTimer invalidate];
if (p.playing)
{
[self.playButton setImage:((p.playing …Run Code Online (Sandbox Code Playgroud) 我需要一些帮助来理解这里发生的处理,所以fib(5)我想我称我想要斐腾纳奇5,这是8.但是我试图理解算法的大脑说它不是.这就是我(错误地)思考的方式:
return fib(4) + fib(3) // Stack frame 1
return fib(3) + fib(1) // Stack frame 2
Run Code Online (Sandbox Code Playgroud)
现在因为x是1 fib(1),条件语句if x == 0 or x == 1:导致递归结束.根据我的逻辑,将成为3 + 1 + 4 + 3.请纠正我错误的逻辑.
def fib(x):
"""assumes x an int >= 0
returns Fibonacci of x"""
assert type(x) == int and x >= 0
if x == 0 or x == 1:
return 1
else:
return fib(x-1) + fib(x-2)
Run Code Online (Sandbox Code Playgroud) 我想从iPod库中的有声读物中获取专辑封面,但我不明白如何使用 MPMediaItemPropertyArtwork
- (NSArray *)audiobooks
{
MPMediaPropertyPredicate *abPredicate =
[MPMediaPropertyPredicate predicateWithValue:[NSNumber numberWithInt:MPMediaTypeAudioBook]
forProperty:MPMediaItemPropertyMediaType];
MPMediaQuery *abQuery = [[MPMediaQuery alloc] init];
[abQuery addFilterPredicate:abPredicate];
[abQuery setGroupingType:MPMediaGroupingAlbum];
NSArray *books = [abQuery collections];
return books;
}
- (MPMediaItem *)mediaItemForRow: (NSInteger)row
{
NSArray *audiobooks = self.audiobooks;
MPMediaItem *mediaItem = nil;
for (id object in audiobooks) {
if ([object isKindOfClass:[MPMediaItemCollection class]]) {
MPMediaItemCollection *book = (MPMediaItemCollection *)object;
id item = [book items][row];
if ([item isKindOfClass:[MPMediaItem class]]) {
mediaItem = (MPMediaItem *)item;
}
}
}
return mediaItem;
} …Run Code Online (Sandbox Code Playgroud) 我遇到了UIActivityViewController的问题,每次用户按下"共享"按钮时我都会实例化一个新实例,但它不能正常旋转.我的代码缺少必要的东西吗?
当我只旋转状态栏并且UIActivityViewController将旋转(而不是后台中的视图)时,有时activityView的大小也会出错.
UIActivityViewController *activityVC;
// Init sharing items and View Controller
NSString *message = [NSString stringWithFormat:@""];
UIImage *imageToShare = [UIImage imageNamed:@"imageName"];
NSArray *postItems = @[message, imageToShare];
activityVC = [[UIActivityViewController alloc]
initWithActivityItems:postItems
applicationActivities:nil];
[self presentViewController:activityVC animated:YES completion:^() {
[activityVC setCompletionHandler:^(NSString *activityType, BOOL completed) {
// Completed
}];
}];
Run Code Online (Sandbox Code Playgroud) 有人可以澄清这里发生的事情.我得到了一个名为:brainModel的类,它又有一个名为:operandStack的NSArray.我只是访问数组发送消息"removeAllObjects"
self.brainModel.operandStack.removeAllObjects;
Run Code Online (Sandbox Code Playgroud)
但是使用点符号它会给我一个警告"未使用属性访问结果 - 不应该使用getter来产生副作用"这究竟是什么意思?
使用这样的嵌套括号语法不会发出警告:
[[[self brainModel]operandStack]removeAllObjects];
Run Code Online (Sandbox Code Playgroud)
这两个工作顺便说一句......它是否与错误使用点符号有关?或者在传递像这样的消息对象时使用点表示法被认为是一种好习惯 - 发送像"removeAllObjects"这样的参数.
我做了一个程序来执行(通常称为)冰雹序列,该程序基本上是这样做的:
创建一个int(值)并为其赋值.
如果int是偶数,则除以2.
如果int是奇数,则将其乘以3并加1.继续此过程,直到n等于1.
它似乎与大多数数字一起工作正常,但这个数字99888769,应用程序挂起一个负整数.这是为什么?他们说没有人能够证明它停止了,我没想到我已经解决了这个问题.但知道为什么我的应用程序停止会很有趣. -
private void hailStoneSequence(){
int value = 99888769;
int i = 0;
boolean trueOrFalse = isOddOrEven (value);
while (value != 1){
while (trueOrFalse == true && value != 1){
i++;
int previousValue = value;
value = value / 2;
println( previousValue +" is even, so I take half: "+value);
trueOrFalse = isOddOrEven (value); // returning true or false, and inserting the newly divided number. So that it breaks loop when nescesary.
}
while …Run Code Online (Sandbox Code Playgroud) 默认情况下,当我在IB中拖出一个TableViewController时,tableview会占用所有屏幕,即使用户滚动tableview,也无法添加一个保持原位的UIView(如果我说添加带有一些按钮的UIView,那么当我滚动桌面视图时,UIView也会滚动.)
我的程序使用UITableViewController子类来控制tableview,即使用户滚动,顶部栏保持静态的最简单方法是什么?