使用四元数来代替滚动,俯仰和偏航来跟踪设备的运动

请耐心解决我长期以来的问题,我想尽可能使之清楚。 我想要做的是,当使用相机拍摄照片时,获取姿态(滚动音高和偏航),然后将姿态值保存到nsuserdefaults。 保存后,方向改变,然后尝试通过不断比较姿态值(保存的和当前的)来使手机达到与拍摄图像相同的姿态。 为了界面的目的,用户界面在屏幕上有3个点(每个姿态参数一个),以指导拍摄的正确方向。 在达到正确态度时,屏幕上显示匹配标志。 我一直在find滚动,俯仰和偏航的值: CMQuaternion quat = self.motionManager.deviceMotion.attitude.quaternion; myRoll = radiansToDegrees(atan2(2*(quat.y*quat.w – quat.x*quat.z), 1 – 2*quat.y*quat.y – 2*quat.z*quat.z)) ; myPitch = radiansToDegrees(atan2(2*(quat.x*quat.w + quat.y*quat.z), 1 – 2*quat.x*quat.x – 2*quat.z*quat.z)); myYaw = radiansToDegrees(2*(quat.x*quat.y + quat.w*quat.z)); 当我注意到在偏航值有一些差距,我search,可以从这里find: 链接 ,那 从四元数的偏航,俯仰和滚转,你将会遇到同样的问题,就好像你正在使用偏航,俯仰和滚转。 你必须在你的代码中四处使用四元数,并忘记偏航,俯仰和滚转 所以现在我想我必须再次编码一切…请你能如此友好的指向我为此目的使用四元数的示例代码? 这是我正在处理的代码: 在ViewController.m中,在图像中:didFinishSavingWithError: [self.motionManager startDeviceMotionUpdatesToQueue:[NSOperationQueue mainQueue] withHandler:^(CMDeviceMotion *motion, NSError *error) { CMQuaternion quat = […]

为iPhone提供最佳分析服务

什么是最好的iPhone分析产品? 我见过Pinchmedia,但我不确定,因为默认的应用程序页面显示“2008年7月上次更新”。

有条件地隐藏编译器的代码

所以这是问题。 我准备尽快为iOS发布更新,以解决iOS 7中的一些问题。为此,我需要使用一些特定的iOS 7function/types。 我已经绝对确定,iOS 7的代码只能在iOS 7上执行,并在iOS 7之前回退到不同的代码。当然,我不允许使用当前的Xcodetesting版进行提交,所以我试图编译与当前的Xcode版本。 但是,我似乎无法find一种方法来禁用此特定的警告: Use of undeclared identifier '<Redacted>'. 有谁知道使用#pragma禁用此警告的方法。 我已经尝试了一堆不同的包括 -w , -Weverthing , -Wall 但似乎没有任何工作。 更新答案:当然,你不能,因为编译器不能编译一个它一无所知的标识符。 我的解决scheme是简单地创build一个#define : #define <redacted> 1 更新2下面的答案实际上使得它更容易。 我已经创build了一个#define Xcode5Code(code, alt) ,它允许我有条件地执行代码块。 通过使用@maddy的解决scheme修改它: #if __IPHONE_OS_VERSION_MAX_ALLOWED >= 70000 #define Xcode5Code(code, alt) code #else #define Xcode5Code(code, alt) alt #endif 这使我可以通过使用以下方法轻松地从编译器隐藏代码块: Xcode5Code({ //Code to be execute only […]

带iOS自动布局约束的UIScrollView:子视图的大小错误

我试图在代码中生成一个视图。 这里是我的视图对象的层次结构 UIScrollView中 的UIView 的UIButton ScrollView应该与窗口大小相同。 button应该尽可能大。 我使用iOS自动布局,所以我的所有对象的约束string看起来像这样 H:|[object]| V:|[object]| 我也为每个对象设置了translatesAutoresizingMaskIntoConstraints为NO 。 问题是,button只获取默认的button大小。 它的父视图对象(UIView)只获取其子视图所需的大小。 红色:UIScrollView /黄色:UIView 我怎样才能强制这些意见像scrollView一样大? 当我使用UIView而不是UIScrollView时,一切都很好… 这是一些代码: – (void) viewDidLoad { [super viewDidLoad]; // SCROLL VIEW UIScrollView* scrollView = [UIScrollView new]; scrollView.backgroundColor=[UIColor redColor]; scrollView.translatesAutoresizingMaskIntoConstraints = NO; //CONTAINER VIEW UIView *containerView = [UIView new]; containerView.translatesAutoresizingMaskIntoConstraints = NO; containerView.backgroundColor = [UIColor yellowColor]; [scrollView addSubview:containerView]; // […]

Facebook应用程序邀请通知不在ios中工作

我已经在演示应用程序中实施了Facebook应用程序邀请。 它工作正常,但没有得到通知。 我已经在我的问题中添加了所有细节,现在任何人都可以告诉我在我的代码中是什么问题,我该怎么做才能解决这个问题。 我已经创build了testing用户来testing这个应用程序。 此代码工作正常,它启动一个对话框,显示好友列表,并显示应用程序邀请被发送,但当我检查它在朋友帐户它不显示任何通知。 我的Info.plist文件 我想我在URLtypes(URL Schemes)下的info.plsit中有一个错误。 我已经写了行动,这是方法的名称,但我不知道我应该写在这个专栏。 Appdelegate.m – (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { BFURL *parsedUrl = [BFURL URLWithInboundURL:url sourceApplication:sourceApplication]; if ([parsedUrl appLinkData]) { NSURL *targetUrl = [parsedUrl targetURL]; [[[UIAlertView alloc] initWithTitle:@"Received link:" message:[targetUrl absoluteString] delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil] show]; } return YES; } ViewController.h 当appInviteDialog:(FBSDKAppInviteDialog *)appInviteDialog didCompleteWithResults:(NSDictionary *)results获取结果为null appInviteDialog:(FBSDKAppInviteDialog *)appInviteDialog […]

如何使MKAnnotationView触摸敏感?

我目前有一个地图视图上有一些注释。 我有自定义图像的注释。 我试图解决的问题是图像的敏感性。 当我试图拖动它们时,感觉就像我必须触摸确切的中心来重点关注它。 有没有办法让触摸范围更大?

内存泄漏时使用NSURLSession.downloadTaskWithURL

所以我在斯威夫特的努力中遇到了另一个障碍。 我正在尝试将多个图像加载到图像库中 – 除了一件事情之外,所有的工作都很好。 尽pipe我清除了图像,但应用程序的内存使用仍在不断增长和增长。 基本上所有的代码基本上,我发现这是由我的图像加载脚本引起的: func loadImageWithIndex(index: Int) { let imageURL = promotions[index].imageURL let url = NSURL(string: imageURL)! let urlSession = NSURLSession.sharedSession() let query = urlSession.downloadTaskWithURL(url, completionHandler: { location, response, error -> Void in }) query.resume() } 正如你所看到的,这段代码现在基本上什么都没有。 然而每次我打电话时,我的应用程序内存使用量都在增长。 如果我注释掉查询,内存使用情况不会改变。 我已经阅读了几个类似的问题,但都涉及使用一个代表。 那么,在这种情况下,没有代表还有内存问题。 有谁知道如何消除它,是什么造成的? 编辑:这是一个完整的testing类。 似乎内存只在图像可以加载时才会增长,就像指向图像的指针永远保存在内存中一样。 当图像没有find时,没有任何反应,内存使用率保持低。 也许有些提示如何清理这些指针? import UIKit class ViewController: UIViewController { override […]

如何在Chrome iOS上打开Bloburl

我想在浏览器窗口中打开Blob对象。 这个代码在任何地方都可以运行,但iOS Chrome浏览器(当然IE也可以解决IE)。 该窗口没有redirect到URL(这是正确的,或至less在其他浏览器相同)。 Chrome iOS有没有已知的解决方法? var blob = new window.Blob(['Hello, world!'], {type: 'text/plain;charset=utf-8'}); window.URL = window.URL || window.webkitURL; var url = window.URL.createObjectURL(blob); window.location.href = url; 我已经尝试<a href="{blobUrl}>而不是window.location.href但它也不起作用。

iDevice相机显示黑色而不是预览

我正在开发一个应用程序,捕捉从iDevice的相机的图像,并将其上传到networking服务。 没有问题一切工作正常,除了设备的相机。 设备的相机正在让我疯狂。 我使用下面的代码来允许用户捕捉图像。 有时相机显示预览,有时不显示。 而不是预览只是在屏幕上显示完整的黑暗。 如果我从后面切换到前面,摄像头开始工作正常。 我甚至尝试从设备上删除所有的后台应用程序,并尽可能清理内存; 仍然没有运气,我卡住了。 🙁 – (IBAction)addNewImage:(id)sender { UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init]; imagePicker.delegate = self; if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { // Take picture from camera imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera; // set no to take as much pictures as user want. imagePicker.showsCameraControls = YES; // Show user the camera [self presentModalViewController:imagePicker […]

GROUP BY与SUM()使用核心数据

我遇到了类似的问题,但没有一个有完整的例子来说明如何完成它。 我试图翻译的SQL查询是这样的: SELECT date, SUM(amount) FROM Table GROUP BY date; 我需要帮助debugging下面的代码(目前fetchRequest返回nil): entity = [NSEntityDescription entityForName:@"Table" inManagedObjectContext:self.managedObjectContext]; [fetchRequest setEntity:entity]; NSExpressionDescription* ex = [[NSExpressionDescription alloc] init]; [ex setExpression:[NSExpression expressionWithFormat:@"@sum.amount"]]; [ex setExpressionResultType:NSDecimalAttributeType]; [fetchRequest setPropertiesToFetch:[NSArray arrayWithObjects:@"date", ex, nil]]; [fetchRequest setPropertiesToGroupBy:[NSArray arrayWithObject:@"date"]]; [fetchRequest setResultType:NSDictionaryResultType ]; [self.managedObjectContext executeFetchRequest:fetchRequest error:&error]; 这是错误的: 2012-09-28 13:58:46.319 App[12205:c07] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', […]