我有一个很大的iOS项目,由几个(大约20-30个)静态库组成,这些静态库链接在一起成为最终的可执行文件。 一些组件是平台无关的(纯C ++),一些是特定于iOS的(Obj-C / Obj-C ++)。 C ++模板被大量使用,所以每个目标文件都包含很多符号模糊的链接。 问题是这些符号仅在最终可执行文件链接期间合并,而不是在制作静态库时合并。 每个库包含大量重复的符号(6-60克隆)。 所以应用程序的最终连接需要几分钟的时间。 这在debugging和做一些小的改变时变得非常恼人。 有没有办法对每个图书馆进行模糊联系的符号合并? 我知道,这是使用dynamic库时自动完成的。 通过一些黑客行为(http://sumgroup.wikispaces.com/iPhone_Dynamic_Library),可以为iOS构builddynamic库。 有没有办法链接dylib的静态(链接到一个单一的可执行文件)? 当然,能够debugging结果的应用程序是必须的。
根据产品介绍,iPhone 5有3个麦克风: 看完iFixit和其他人的网站之后,我现在知道底部的麦克风在哪里,而且我已经识别出了后面的那个,就在相机旁边。 在前面应该有另外一个,但是我看不到它,所以我假设它在听筒/接收器开口后面。 (它是否正确?) 我想从两个不同的麦克风录制,而iPhone 5正躺在它的后面。 (所以后置麦克风是不可能的)。 我的问题: 有两种方法可以同时和分别从两个麦克风录制(即立体声,就像一些Windows Phone 8 Lumia手机让你这样做)? 如果没有,有没有一种方法可以用来在麦克风之间切换,例如从iPhone底部的第一个logging开始,然后执行一些代码切换到顶部的那个? 您的提示将非常感激。
XCode文档没有解释每个目标path在光盘上的映射位置,相对于我的应用程序包。 如果我使用这个应用程序作为例子,有人可以给出一个规范的答案,每个将放置文件相对于这个目录结构?
在最初devise用于以前版本的iOS7中运行应用程序时,深灰色导航栏会为其文本为黑色的状态栏添加色彩。 我试图将其调整到最新版本,并将UIApplication.statusBarStyle设置为UIStatusBarStyleLightContent,如下所示: [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:YES]; 这段代码应该改变状态栏的文字颜色为白色,但它没有。 我在我的UIApplication实例的_statusBarRequestedStyle属性中添加了一个观察点,通过执行viewWillAppear和viewDidAppear方法之间的一些UIApplicationMain调用,我可以看到它被设置为0(UIStatusBarStyleDefault)。 我无法弄清楚为什么在这一点上状态栏的样式会发生变化,如果你有同样的经历,我将不胜感激。 提前致谢! 编辑:从iOS 7 UI过渡指南( https://developer.apple.com/library/ios/documentation/userexperience/conceptual/transitionguide/bars.html ) 在iOS 7中,您可以从单个视图控制器控制状态栏的样式,并在应用程序运行时对其进行更改。 如果您希望退出此行为,并使用UIApplication statusBarStyle方法设置状态栏样式,请将UIViewControllerBasedStatusBarAppearance关键字添加到应用程序的Info.plist文件中,并将其值设置为NO。
我在我的应用程序中实现UILocalNotification ,并按预期发送通知。 据我所知,通知是这样处理的: 当应用程序没有运行,并且用户点击通知时, applicationDidFinishLaunching通过applicationDidFinishLaunching方法中的选项接收通知。 当应用程序处于活动状态时,它通过didReceiveLocalNotification方法接收通知。 当应用程序在后台,并且用户单击通知时,它通过didReceiveLocalNotification方法接收通知。 但有一种情况我一直无法覆盖,那就是当一个通知被触发,应用程序在后台,而应用程序只是通过点击应用程序图标(而不是点击通知)来激活。 在这种情况下,没有可用的UILocalNotification 。 但是我仍然想知道自从上次激活通知以来,通知已经触发了,因为通知中有一些信息要在它的userInfo属性中执行。 目前我已经通过检查applicationDidBecomeActive中的徽章号是否为0来“解决”它,但是这只允许我向用户显示一般消息。 我宁愿能够知道什么通知导致徽章号码更新。 有什么办法可以做到这一点?
我有一个iOS应用程序与2视图控制器即FirstViewController和SecondViewController 。 我的窗口的rootViewController是UINavigationController 。 FirstViewController只能在纵向模式下工作,而SecondViewController只能在横向模式下工作。 search遍历Stackoverflow我发现,对于iOS6和以上,我必须创build一个类别超过UINavigationController和覆盖-supportedInterfaceOrientations 问题 从FirstViewController开始。 现在我的手机在肖像模式,我推SecondViewController,视图加载在肖像模式。 一旦我将手机旋转到横向,视图将旋转到横向(从这一点起,将不会返回到纵向)。 当我回弹FirstViewController将再次在肖像(不pipe手机的方向)。 我希望SecondViewController不应该以纵向模式显示。 我整天绞尽脑汁……找不到解决办法。 的appdelegate – (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; ViewController *vc = [[ViewController alloc] init]; self.navigationController = [[UINavigationController alloc] initWithRootViewController:vc]; [self.navigationController setNavigationBarHidden:YES]; self.window.rootViewController = self.navigationController; [self.window makeKeyAndVisible]; return YES; […]
我已经设法在OSX上使用make在命令行上构build静态C库。 我曾尝试使用相同的Makefile(使用ARCHFLAGS=-arch armv6 -arch armv7 )为iOS构build一个静态库,但是它失败: gcc-4.2: error trying to exec '/usr/bin/arm-apple-darwin10-gcc-4.2.1': execvp: No such file or directory 我猜这是行不通的,因为我正在使用OSX SDK make而不是iOS SDK的某个部分。 任何线索? 注意有关问题库(levmar)和Makefile的更多详细信息,请参阅此堆栈溢出答案 。
我得到一个应用程序密集使用SQLite,它在模拟器,并在iphone 4 / 4s完美的作品 当我安装在iphone 5和更大,我得到这个错误: Unknown error finalizing or resetting statement (10: disk I/O error) 为什么只发生在iPhone 5上? 设备上有12 GB的空间。 谢谢!
UITapGestureRecognizer应用于UIImageView及其子视图( UITextView )。 但是,当我点击子视图,接收器成为子视图和它的父视图(即UIImageView + UITextView )。 它应该只是子视图,因为那是我挖掘的一个。 我假设嵌套的手势会首先作出反应,但显然父母接受拳头轻敲,然后去孩子。 所以,有各种不同的解决scheme(不是类似于我的,而是滚动视图冲突内的button)。 我怎样才能轻松解决我的问题,没有可能的子类和iOS 6 +支持? 我试着拖延UIImageView上的UIGestureRecognizer启动触摸,我试图设置cancelsTouchesInView到NO – 所有没有运气。
在Objective-C中,方法stringWithFormat:似乎是非常慢,实际上是我们的一个应用程序(我们使用探查器找出来)的一个大瓶颈。 有没有一种方法来优化或使用更快的C代码?