为什么数组是Swift中的AnyObject?

我无法理解AnyObject的局限性。 你可以从头部看到Array是一个结构体。 不过,这个代码的作品: var whatobject : AnyObject whatobject = [1,2] 这不只是文字数组: var whatobject : AnyObject let arr = [1,2,3] whatobject = arr 但是,我不能分配一个结构,我做whatobject : struct S {} var whatobject : AnyObject whatobject = S() // error 所以一个数组毕竟不是一个真正的结构?

我怎样才能在我的html5dateinput设置一个最大值,以便它可以被Safari的iOS识别?

标题很清楚,我猜? 这是我的dateinput: <input type="date" id="birthdate" name="birthdate" value="" max="1993-12-07" required/> 在铬,我不能inputdate优于1993-12-07使用领域的小箭头(但如果我自己写date我可以)。 在iOS的safari中,专注于该领域只是带来了一个不错的dateselect器。 但是,这个dateselect器不限于“最大”属性。 那我该怎么做呢? 当然,我有一个服务器端的表单validation,但我也想在客户端。 任何想法? 谢谢!

如何使用核心数据模型而不保存它们?

我正在编写一个应用程序,我正在使用MagicalRecord作为与Core Data交互的框架。 应用程序从服务器获取海报arrays,然后显示它们。 海报也可以在应用上创build,然后上传到服务器,如果用户需要它。 因此,用户创build的海报使用Core Data存储在本地数据库中,而从服务器获取的海报只能在应用程序中显示,而不能在本地保存。 如何使用相同的Poster类(现在是NSManagedObject的子类)来处理这两种情况? 这是我的class级: @interface Poster : NSObject @property (nonatomic, retain) NSNumber * posterID; @property (nonatomic, retain) NSString * artists; @end 当我从服务器获取海报数组时,我分配一个新的海报,然后分配属性: Poster *poster = [[Poster alloc] init]; if ([dict objectForKey:@"id"]) poster.posterID = [dict objectForKey:@"id"]; if ([dict objectForKey:@"artists"]) poster.artists = [dict objectForKey:@"artists"]; 但是,当到达链接poster.posterID = [字典等等等应用程序崩溃这个错误 由于未捕获的exception'NSInvalidArgumentException',原因:' – [海报setPosterID:]:无法识别的select器发送到实例0xaa8b160' 如果我用Poster *poster = […]

iOS的SQLite.swift,关于应用程序的升级?

关于macros伟和惊人的SQLite.swift,我想知道 您在app storev7中有一个应用程序。 有一个升级到V8。 用户X使用app store将v7升级到v8。 在v8中说,我们已经稍微改变了一个sql表,可能会添加一列或重命名一列。 在这种情况下,SQLite.swift应该做什么或必须做什么特别的事情? 什么是SQLite.swift的方式来处理? (举例来说,Android的助手类中有一个方便的onUpgrade概念,它带有一套复杂的问题。)

NSMetaDataQuery永远不会callbackNSMetadataQueryDidFinishGatheringNotification

对于我正在写的iCloud插件,我订阅了我的iCloudpipe理器类到这些iCloud NSMetaDataQuery观察者: // Add a predicate for finding the documents NSString* filePattern = [NSString stringWithFormat:@"*.%@", @"*"]; self.metadataQuery = [[NSMetadataQuery alloc] init]; // Before starting to query, it is required to set the search scope. arrayWithObject:NSMetadataQueryUbiquitousDocumentsScope]]; // It is also required to set a search predicate. [self.metadataQuery setPredicate:[NSPredicate predicateWithFormat:@"%K LIKE %@", NSMetadataItemFSNameKey, filePattern]]; // Listen for […]

合并与相同的超类Swift数组

我试图find合并Swift数组的不同types的最佳方法,但它们具有相同的超类。 我已经阅读了所有的教程,所以我知道我可以使用: var array = ["Some", "Array", "of", "Strings"] array += ["Another string", "and one more"] array.append(["Or", "This"]) 在这种情况下, arrayvariables推断types[String] 。 我遇到的问题涉及到下一个类的假设情况( 属性在这种情况下无关紧要,只是在类之间做出区别 ): class A { var property1 : String? } class B : A { var property2: String? } class C : A { var property3: String? } 所以我创build了一个类A和B对象的数组: var array = [ […]

dynamic改变UIKeyboards返回键

我有两个UITextfield用户input他的名字到第一个和电子邮件到第二个。 我想知道如何更改UIKeyboards返回键,具体取决于名称文本字段是否有条目。 例如,如果nametextfield为空,那么我希望UIkeyboard的返回键为Next,如果nametextfield中有条目,那么当用户select电子邮件文本字段时,我希望返回键被提交。 这可能吗? 如果是的话,我将如何去完成它? 任何帮助,将不胜感激。

如何等待一个函数在iOS / Swift上结束,然后再开始第二个

我基本上必须要在我的viewDidLoad中调用的方法。 第一个获取用户的search首选项,并将首选项保存到顶部的variables。 之后,我想在第二个函数中访问和使用这些variables。 但是现在variables总是零,当我想在第二个函数中访问它们时。 我如何调整我的viewDidLoad,所以第二个函数只执行一次,我的数据请求已成功执行? var searchLocation = String() var searchLocationCoordinates = [String:Double]() var searchRange = Int() override func viewDidLoad() { super.viewDidLoad() // Gets the user's search preference getTheSearchLocationAndRange() // Loads the data from the database loadDataFromDatabase() } 到目前为止,我已经阅读了与dispatch_asynch或完成处理程序的东西。 也许有人可以发布一些代码,我可以在我的viewDidLoad中使用,并使其工作?

如何支持截至2014年的各种iPhone屏幕尺寸?

我几乎完成了我的第一个iPhone应用程序,并试图添加一个背景图像,我觉得有点混乱,因为如今有不同的iPhone版本中的3或4个不同大小的屏幕,以不同的分辨率启动。 所以当我意识到整个事情的时候,我还是不知道自己真正需要什么。 如果我希望我的应用能够在iPhone 4 / 4s,5s / 5c,6/6 +上运行,我需要多less个不同版本的背景图像,以及尺寸和分辨率是多less? 我已经search了一下,到2014年还没有发现任何有凝聚力的答案。 另外,如果iPhone 6是1334×750 @ 3x,这是否意味着我应该包括4002×2250背景? 然后为1920×1080 iPhone 6 + @ 3x,一个5760 x 3240图像? 这是巨大的! 我觉得我必须正确地理解这一点。

如何从第一个选项卡继续到标签栏控制器的第二个选项卡?

我没有问题,实际上执行segue,但是当我这样做,我的标签栏从视图的底部消失。 我制作了一个从TabBarController1到TabBarController2的故事板。 Objective-Cfind了很多答案,但是没有一个适用于Swift。 这是执行segue的代码: if requestsArray.count == 0 { self.performSegueWithIdentifier("offerSegue", sender: self) } else { self.performSegueWithIdentifier("confirm1", sender: self) }