Swift中有两个(或更多)可选项

在观看关于LLDBdebugging器的苹果video的同时,我发现了一些我找不到的解释; 他在谈到可选的价值时写道: var optional: String? = nil; //This is ok, a common optional var twice_optional: String?? = nil; //What is this and why's this useful?? 我打开了一个操场,开始尝试,并意识到你可以写多达? 如你所愿,然后用相同数量的解包它们! 。 我理解包装/解包variables的概念,但不能想到我想包装一个值4,5或6次的情况。

只有在asynchronous函数完成执行后才能运行代码

我对Swift和Xcode一般都比较陌生,在找出这个问题时遇到了很多困难。 我正在开发一个利用Parse.com后端服务器的应用程序。 为了不阻塞主线程,每当应用程序从服务器下载任何东西时,它都是在asynchronous线程上asynchronous完成的。 然而,其余的代码继续在主线程上执行,并且它应该从服务器获得的数据还没有下载时崩溃。 我想知道如何在asynchronous函数完成后调用函数来运行,而这必须在单独的文件中完成。 我读封闭可能会有所帮助,但我发现那里的语法非常困难,一个解释将不胜感激。 但是,任何方式都会非常有帮助。 谢谢

iAd正在closures。 我应该从我的所有应用程序中删除iAd框架吗?

您收到此电子邮件是因为您订阅了开发者广告服务协议(“协议”)以使用iAd的广告networking和相关服务。 我们非常感谢您允许Apple在您的移动媒体资源上投放广告。 如您所知,iAd Appnetworking及相关广告服务将于2016年6月30日停止。有关iAd App Networkclosures的更多详情,请参阅此处。 注意:苹果应付的任何未付款项将不迟于2016年9月30日,且活动报告数据将于2016年12月31日前提供。此电子邮件应以书面forms通知苹果将行使其select权终止本协议,自2016年6月30日晚上11:59 PDT。 本通知中的任何内容或从本通知中删除的内容均不得视为放弃任何苹果的权利,补救措施或抗辩,所有这些都明确保留。 问候,App Store团队 我想知道下一个最佳的替代iAdnetworking。 易于集成和设置。 另外,我应该从我的其他应用程序中删除iAd框架?

属性不与getter和setter一起工作

我已经定义了一个属性… @property (nonatomic, strong) NSArray *eventTypes; 我想重写getter和setter … 我写了这个… – (void)setEventTypes:(NSArray *)eventTypes { _eventTypes = eventTypes; //do some stuff here. } 这工作正常,但是当我然后添加此… – (NSArray*)eventTypes { //do some stuff here. return _eventTypes; } 然后这两个函数显示错误,不知道_eventTypes是什么。 这是相同的任何方式。 它使用一个函数,但一旦我添加其他失败他们两个。 还有什么我需要做的呢? 似乎奇怪的是,它与任何一个机器人不是两个。

Xcode,在哪里分配segue标识符

请原谅我在Swift 2中的初学者问题。我知道我可以像这样切换到另一个屏幕(ViewController) self.performSegueWithIdentifier ("SecondViewController", sender: self) 但我似乎无法find哪里分配我的第二个屏幕的ID,我只是find故事板ID,是吗? 我已经尝试过,只收到与以下错误的崩溃: 'Receiver (<MyApps.RegViewController: 0x7fda5ae3abf0>) has no segue with identifier 'SecondViewController'' 任何想法? 谢谢

didRegisterForRemoteNotificationsWithDeviceToken不在ios8中调用,但didRegister …设置是

我跟着这个线程 ,但方法didRegisterForRemoteNotificationsWithDeviceToken仍然没有被调用: 该文件说: 在调用UIApplication对象的registerForRemoteNotifications方法后,应用程序在设备注册成功完成时调用此方法 didRegisterUser似乎很好,但did register notif 。 这是我在AppDelegate中的代码(应用程序版本是8.1): – (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { //register notif UIUserNotificationType userNotificationTypes = (UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound); UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:userNotificationTypes categories:nil]; [application registerUserNotificationSettings:settings]; return YES; } – (void)application:(UIApplication *)application didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings { //register to receive notifications [application registerForRemoteNotifications]; NSLog(@"didRegisterUser"); } -(void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error { […]

检查是否在Core Data中设置了属性?

我如何检查一个属性是否在核心数据对象中设置? 我将所有的核心数据对象加载到一个目录中: var formQuestions = [Questions]() 而我的核心数据NSManagementObject是: @NSManaged var noticeText: String formQuestions [indexPath.row] .noticeText //加载: var fetchRequest = NSFetchRequest(entityName: "Questions") fetchRequest.predicate = NSPredicate(format: "forms = %@", currentForm!) formQuestions = context.executeFetchRequest(fetchRequest, error: nil) as [Questions] 我的属性“noticeText”可能是空的或不是,所以当我创build我的核心数据对象时,可能没有设置一些值。 (该属性在核心数据中设置为可选) 当我现在尝试certificate如果有价值,它总是给我一个“EXC_BAD_ACCESS ….” if(formQuestions[indexPath.row].noticeText.isEmpty == false) 我可以设置一个空string,当我创build我的核心数据对象,但这应该不是一个好的解决scheme。 那么如何检查(optinal)而不是设定值? 提前致谢。

将未知格式(任何格式)的string转换为date

我有包含date​​string的数据。 通常情况下,将在1月。 3,1966'式格式,但由于国际上的差异,可能并不总是如此。 我需要读取数据并将其转换为标准datestring('YYYY-MM-DD')。 基本上这是我迄今为止: var dataString = 'Jan. 3, 1966' var dateFormatter = NSDateFormatter() dateFormatter.dateFormat = # I DON'T KNOW THE EXACT INPUT FORMAT ! let dateValue = dateFormatter.dateFromString(dataString)

如何识别哪个引脚被窃听

我在这张地图上有一个MKMapView和大量的针脚的应用程序。 每个引脚都得到了rightCalloutAccessoryView 。 我以这种方式创build它: UIButton* rightButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure]; [rightButton addTarget:self action:@selector(showDetails:) forControlEvents:UIControlEventTouchUpInside]; pinView.rightCalloutAccessoryView = rightButton; 我应该怎么知道,哪个针被窃听? 日Thnx

在Swift中使用CCCrypt(CommonCrypt)问题

我正在将一个工作的Objective-C类别(NSData + AESCrypt.m)移植到Swift中,并且发现了一个指针问题。 Swift中encryption部分的代码编译正确,但生成一个运行时EXEC_BAD_ACCES错误。 我到目前为止的代码是(我试图尽可能解剖代码): let key = "123456789012345678901234567890120" let keyLength = UInt(kCCKeySizeAES256 + 1) let keyPointer = strdup(key) // Convert key to <UnsafeMutablePointer<Int8> let message = "Don´t try to read this text. Top Secret Stuff" let data = (message as NSString).dataUsingEncoding(NSUTF8StringEncoding) let dataBytes = data?.bytes let length = data?.length let dataLength = UInt(length!) let […]