Questions tagged «iphone»

除非要专门针对Apple的iPhone和/或iPod touch,否则请勿使用此标签。对于不依赖于硬件的问题,请使用标签[ios]。需要考虑的更多标签是[xcode](但仅当问题与IDE本身有关时),[swift],[objective-c]或[cocoa-touch](但不包括[cocoa])。请避免有关iTunes App Store或iTunes Connect的问题。如果使用C#,请使用[mono]进行标记。

4
引用AppDelegate实例变量
我有一个基于基于导航的应用程序模板的项目。在AppDelegate中是方法-applicationDidFinishLoading:和-applicationWillTerminate:。在这些方法中,我正在加载和保存应用程序数据,并将其存储在一个实例变量中(它实际上是一个对象图)。 当应用程序加载时,它将加载MainWindow.xib,它具有一个NavigationConroller,而后者又具有一个RootViewController。RootViewControllernibName属性指向RootView(我的实际控制器类)。 在我的课堂上,我希望引用在-applicationDidFinishLoading:方法中创建的对象,以便获得对它的引用。 谁能告诉我该怎么做?我知道如何在我以编程方式创建的对象之间进行引用,但是鉴于中间步骤是在NIB文件中完成的,因此我似乎无法弄清楚如何回溯。

13
谷歌地图API的替代品
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow的主题。 6年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 Google Maps API非常适合开发基于位置的手机服务。但是由于某些原因,在一个特殊项目中对我的使用受到限制。 例如,如果您的项目与google的一般条款冲突,则不建议使用google maps API。 在我的Android和iOS应用中,我想通过检索GPS信息在地图上显示位置。总体而言,该API应该提供与Google Maps API类似的操作范围。 您知道哪些替代品?也许有开源API?还有其他建议吗?

4
dismissModalViewController并将数据传回
我有两个视图控制器,firstViewController和secondViewController。我正在使用此代码切换到我的secondViewController(我也向其传递了一个字符串): secondViewController *second = [[secondViewController alloc] initWithNibName:nil bundle:nil]; second.myString = @"This text is passed from firstViewController!"; second.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; [self presentModalViewController:second animated:YES]; [second release]; 然后,我在secondViewController中使用以下代码切换回firstViewController: [self dismissModalViewControllerAnimated:YES]; 所有这些都很好。我的问题是,如何将数据传递给firstViewController?我想将不同的字符串从secondViewController传递到firstViewController中。

5
没有AVPlayer代表吗?如何跟踪歌曲播放完毕的时间?目标C iPhone开发
我环顾四周,但找不到的委托协议AVPlayer class。是什么赋予了? 我正在使用其子类AVQueuePlayer来播放的数组AVPlayerItems,每个数组都是从URL加载的。歌曲播放完毕后,有什么方法可以调用方法?明显在队列末尾吗? 如果那是不可能的,那么在歌曲开始播放后,缓冲之后,有什么方法可以调用该方法吗?我正在尝试在其中添加一个加载图标,但是即使在[audioPlayer play]操作之后,它也会在音乐真正开始之前将其关闭。


4
如何解密加密的Apple iTunes iPhone备份?
许多不幸的iPhone用户曾要求我帮助他们从iTunes备份中还原数据。当未加密时,这很容易,但是无论是否知道密码,都不容易。 因此,我试图找出加密时用于mddata和mdinfo文件的加密方案。否则,我可以毫无疑问地读取这些文件,并且为此构建了一些健壮的C#库。(如果您能提供帮助,我不在乎您使用哪种语言。这是我在这里遵循的原则!) 苹果公司的《 iPhone OS企业部署指南》指出:“可以通过在iTunes的设备摘要窗格中选择“加密iPhone备份”选项,以加密格式存储设备备份。文件使用256位密钥的AES128进行加密。安全地存储在iPhone钥匙串中。” 这是一个很好的线索,并且在iPhone AES / Rijndael互操作性上的Stackoverflow上有一些很好的信息,建议使用128的密钥大小和CBC模式。 除了其他混淆之外,还需要密钥和初始化向量(IV)/盐。 人们可能会认为该密钥是对“备份密码”的一种操纵,iTunes会提示用户输入该密码,并将其传递给“ AppleMobileBackup.exe ”,并以CBC规定的方式进行填充。但是,考虑到iPhone钥匙串,我想知道“备份密码”是否可能不用作X509证书或对称私钥上的密码,以及该证书或私钥本身是否可以用作密钥。(AES和iTunes的加密/解密过程是对称的。) IV是另一回事,可能是几件事。也许它是硬编码到iTunes或设备本身的密钥之一。 尽管Apple的上述评论暗示密钥存在于设备的钥匙串中,但我认为这并不那么重要。可以将加密的备份还原到另一台设备,这表明备份和iTunes配置中存在与解密相关的所有信息,并且在这种情况下,仅设备上的任何内容都是不相关且可替换的。那么关键可能在哪里? 我在下面列出了Windows机器上的路径,但是无论我们使用哪种操作系统,它在很大程度上都是很大的。 “ \ appdata \ Roaming \ Apple Computer \ iTunes \ itunesprefs.xml”包含一个带有“ Keychain”字典条目的PList。“ \ programdata \ apple \ Lockdown \ 09037027da8f4bdefdea97d706703ca034c88bab.plist”包含带有“ DeviceCertificate”,“ HostCertificate”和“ RootCertificate”的PList,它们似乎都是有效的X509证书。同一文件似乎还包含非对称密钥“ RootPrivateKey”和“ HostPrivateKey”(我的阅读显示,这些密钥可能被PKCS#7包围)。另外,在每个备份中,Manifest.plist文件中都有“ AuthSignature”和“ AuthData”值,尽管随着每个文件的增量备份它们似乎会轮换,但建议它们作为键不是那么有用,除非真正相当复杂的工作正在完成。 有很多误导性的内容表明从加密备份中获取数据很容易。并非如此,据我所知,这还没有完成。完全绕过或禁用备份加密是另一回事,而不是我要执行的操作。 这与破解iPhone或类似的东西无关。我要做的只是从未加密的iTunes备份中提取数据(照片,联系人等)的一种方法。我已经使用上面提供的信息尝试了各种排列,但没有结果。我会很想念我可能错过的任何想法或技巧。

5
iPhone核心数据“生产”错误处理
我已经在Apple参考提供的示例代码中看到了有关如何处理Core Data错误的信息。即: NSError *error = nil; if (![context save:&error]) { /* Replace this implementation with code to handle the error appropriately. abort() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development. If …




3
实施NSCopying
我已经阅读了NSCopying文档,但对于如何实施所需的内容仍然不确定。 我的课Vendor: @interface Vendor : NSObject { NSString *vendorID; NSMutableArray *availableCars; BOOL atAirport; } @property (nonatomic, copy) NSString *vendorID; @property (nonatomic, retain) NSMutableArray *availableCars; @property (nonatomic, assign) BOOL atAirport; - (id)initFromVehVendorAvailsDictionary:(NSDictionary *)vehVendorAvails; @end 的Vendor类有称为对象的数组Car。 我的Car对象: @interface Car : NSObject { BOOL isAvailable; NSString *transmissionType; NSMutableArray *vehicleCharges; NSMutableArray *fees; } @property …


16
如何在一个操作中从UINavigationController弹出视图并将其替换为另一个视图?
我有一个应用程序,需要从UINavigationController的堆栈中删除一个视图,并用另一个视图替换它。情况是,第一个视图创建了一个可编辑的项目,然后用该项目的编辑器替换了自己。当我在第一个视图中执行明显的解决方案时: MyEditViewController *mevc = [[MYEditViewController alloc] initWithGizmo: gizmo]; [self retain]; [self.navigationController popViewControllerAnimated: NO]; [self.navigationController pushViewController: mevc animated: YES]; [self release]; 我得到非常奇怪的行为。通常会出现编辑器视图,但是如果我尝试使用导航栏上的“后退”按钮,则会得到额外的屏幕,其中一些是空白的,有些则被弄乱了。标题也变得随机。就像导航堆栈已完全用软管固定。 有什么更好的方法来解决这个问题? 谢谢,马特

14
获取用于推送通知的设备令牌
我正在处理推送通知。我编写了以下代码来获取设备令牌。 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. // Add the view controller's view to the window and display. [self.window addSubview:viewController.view]; [self.window makeKeyAndVisible]; NSLog(@"Registering for push notifications..."); [[UIApplication sharedApplication] registerForRemoteNotificationTypes: (UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)]; return YES; } - (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { NSString …


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.