如何检测iOS应用程序是否在UItesting模式下运行

我希望我的应用程序在UItesting模式下运行时运行特殊代码(例如重置其状态)。 我查看了应用程序从UItesting运行时设置的环境variables,并且没有任何明显的参数来区分应用程序正常运行与UItesting。 有没有办法找出答案? 我不满意的两个解决方法是: 设置XCUIApplication.launchEnvironment与我稍后在应用程序中检查的一些variables。 这不好,因为你必须在每个testing文件的setUp方法中设置它。 我试图从scheme设置中设置环境variables,但是在运行UItestingtesting时不会传播到应用程序本身。 检查是否存在环境variables__XPC_DYLD_LIBRARY_PATH 。 这看起来很不好,现在可能只能工作了,因为我们有如何设置目标构build设置的巧合。

无法build立模块达尔文 – arm64的问题

我开发了我的第一个XCode5 ONLY应用程序,它与我在4.6上完成的应用程序非常相似。 它在模拟器和我的iPhone 4,4S和5以及我的2个iPad上运行完全正常。 但是,当我尝试validation它提交给App Store时,我得到了一堆有关arm64的错误需要7.0.0或更高版本。 我将部署目标设置为6.1,当我在4.6中启动的Xcode 5中运行以前的应用程序时,这种情况不会发生。 如果我将部署目标更改为7.0,则一切正常。 这里发生了什么? 我需要更改哪些内容才能在6.1上进行validation? 谢谢。 编辑:好吧,我把构build设置的体系结构更改为标准(armv7,armv7s)删除arm64,一切正常。 那是正确的做法吗? 据推测,它仍然会运行在iPhone 5S,但不是在64位。 正确?

以编程方式更改高度限制

我想以编程方式更改UITextView的高度约束,所以我将约束设置为我的控制器中的sockets,如下所示: @property (strong, nonatomic) IBOutlet NSLayoutConstraint *descriptionHeightConstraint; 要改变它我做到以下几点: self.descriptionHeightConstraint.constant = self.description.contentSize.height; 这个作品,如果我在viewDidAppear做,但这样做的问题是,我可以看到高度变化后,显示视图是不是非常用户友好,所以我试图做viewWillAppear但没有在那里工作,高度doesn'改变。 更改约束后调用setNeedsUpdateConstraints也不起作用。 为什么在viewDidAppear工作,而不是在viewWillAppear? 任何解决方法? 提前致谢!

关于“声明只在文件范围内有效”

我有一个类+扩展swift文件。 在将另一个文件中声明的委托添加到类后,Xcode在扩展行中显示“声明仅在文件范围内有效”。 我不知道问题是什么。 任何人都可以帮我解决它? class ListViewController: UIViewController, AddItemViewControllerDelegate {…} extension ListViewController: UITableViewDataSource{ func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { tableView.deselectRowAtIndexPath(indexPath, animated: true) performSegueWithIdentifier("ShowDetail", sender: indexPath) } }

构build项目xcode时出错:“您没有权限”

你好,可能这是个愚蠢的问题,可能会问,但我没有得到适当的解决scheme。 我从互联网上下载了一个项目,当我试图运行它/构build它的xCode说: “PROJECT NAME”文件无法打开,因为您无权查看该文件。 我也把项目文件夹的读/写权限,但仍然无法正常工作。 任何人都可以知道为什么会发生这种情况吗? 请帮我解决这个问题

为什么在创buildUIWebView时,清除NSUserDefaults会导致EXC_CRASH?

在我开始之前,我应该告诉你, 这只发生在iOS 5.1。 在最近的更新之前,这从来没有发生过,并且在任何其他版本上都不会发生。 这就是说,这是怎么回事。 当用户注销我的应用程序时,发生的一件事是所有的NSUserDefaults被删除。 我可以使用本SO问题中提出的方法完全删除所有NSUserDefaults ,而不是手动删除每个可能添加到用户默认值的NSUserDefaults 。 NSString *appDomain = [[NSBundle mainBundle] bundleIdentifier]; [[NSUserDefaults standardUserDefaults] removePersistentDomainForName:appDomain]; 什么似乎发生虽然,是每次我尝试创build一个UIWebView删除NSUserDefaults ,我得到一个EXC_CRASH (SIGABRT) 。 当我调用[[UIWebView alloc] initWithFrame:frame]时发生崩溃。 奇怪的吧? 完全退出并重新打开应用程序允许再次创buildUIWebView 。 所以,我设法弄清楚,删除默认值将导致UIWebView问题,但可以肯定的是,我为-[NSUserDefaults setObject:forKey:]添加了一个符号断点。 创build一个UIWebView的确会触发断点。 戳穿崩溃日志给我的例外原因: -[__NSCFDictionary setObject:forKey:]: attempt to insert nil value (key: WebKitLocalStorageDatabasePathPreferenceKey) 这是堆栈跟踪的开始: 0 CoreFoundation 0x3340688f __exceptionPreprocess + 163 1 libobjc.A.dylib 0x37bd4259 objc_exception_throw + 33 2 […]

iOS:准确地确定加速计输出的碰撞能量

我正在创build一个音叉应用程序,在那里您可以将iPhone拍到另一只手的手掌上,或者在柔软的表面上进行设置,以便设置叉子。 所以我想检测每个“凹凸”所包含的能量, (编辑:删除了一吨gumpf) 谁能帮我破解这个吗?

如何检查iOS设备是否使用Swiftlocking/解锁?

我如何检测使用Swift的locking/解锁的iOS设备(如Android中的SCRENON / SCREENOFF)

在Xcode中打开本地谷歌地图

嗨,我有一个使用地图和位置的iPhone应用程序。 我希望用户能够按下一个button,该button将轮到该位置的转向。 我明白,我不允许在应用程序中这样做,但我想知道是否有人可以告诉我,如果有可能做一个链接到本地​​谷歌地图应用程序,将从用户当前位置进入方向的位置。 如果有可能你能告诉我怎么样? 任何帮助,将不胜感激。 谢谢

在MKMapView上用图案图像画线

我尝试用一​​个模式图像在MKMapView上绘制一条线。 通过添加自定义的MKMapOverlay视图完成绘图。 我能够画出线条,但是似乎只使用了图案图像的左侧最上面的像素,而不是整个图像。 这是我的绘图程序: void drawPatternCellCallback(void *info, CGContextRef cgContext) { UIImage *patternImage = [UIImage imageNamed:@"tmpLine"]; CGContextDrawImage(cgContext, CGRectMake(0, 0, patternImage.size.width, patternImage.size.height), patternImage.CGImage); } – (void)drawMapRect:(MKMapRect)mapRect zoomScale:(MKZoomScale)zoomScale inContext:(CGContextRef)context { float alpha = 1; float tileW = 6.0f; float tileH = 4.0f; CGFloat lineWidth = MKRoadWidthAtZoomScale(zoomScale)*2; CGMutablePathRef path = CGPathCreateMutable(); if (path != nil) { //setup styles CGContextSetRGBStrokeColor(context, […]