Tag: 关联types

关于initWithNavigationBarClass的困惑 – 如何使用(new instanceType方法)

这很好用: UINavigationController *nc = [[UINavigationController alloc] initWithNavigationBarClass:[GTScrollNavigationBar class] toolbarClass:[UIToolbar class]]; nc.viewControllers = @[firstPage]; self.window.rootViewController = nc; 但是这不起作用: UINavigationController *nc = [[UINavigationController alloc] initWithNavigationBarClass:[GTScrollNavigationBar class] toolbarClass:[UIToolbar class]]; self.window.rootViewController = nc; self.window.rootViewController.viewControllers = @[firstPage]; // ERROR 怎么会这样? 谢谢

哪个数据types将返回值(37.961498),因为它? 双没有工作

哪个数据types将返回值(37.961498),因为它? 我正在MapView中工作。 其中,目前我正在设置注释,因此我必须设置CLLocationCoordinate2DMake从googleAPI(例如:lat =“37.9615000”和lng =“60.5566000”)parsing一些lat和lng。 我有string中的值,因此我转换为双重刺激,然后分配但没有帮助。 请有人帮助我。 double int1=[num1s floatValue]; double int2=[num2s floatValue]; NSLog(@" %f %f ",int1,int2); annotation.coordinate=CLLocationCoordinate2DMake(int1, int2); 实际值是:37.9615000,60.5566000 NSLog中获得的值:37.961498,60.556599 提前致谢。 更多的解释和理由为什么我需要确切的价值: 我需要为中国设置注释使用lat和lan(lat =“53.5609740”; lng =“134.7728099”) 但是,当从string再次转换值的变化

AnyObject到数组?

我正在使用NSJSONSerialization : let twData: AnyObject? = NSJSONSerialization.JSONObjectWithData(responseData, options: NSJSONReadingOptions.MutableLeaves, error: &dataError) 这给了我一个AnyObject? 。 从这里,我想将它转换为Array<Dictionary<String,String>> 我已经尝试了各种各样,导致了这一点: var twDataArray: Array<Dictionary<String,String>>? = twData? as? Array<Dictionary<String,String>> 这只是给出了错误: types“数组”不符合协议“AnyObject”。 把更简单的版本: var twDataArray = twData as Array 给出错误: 无法转换expression式的types“AnyObject?” 键入'Array'

在Swift中进行types转换

我正在写一个库,可以从JSONparsing键入的ID。 但是,我发现types化规则有点困惑。 例: class AccountId : NSString { } let json : AnyObject? = "user-1" // Returned by NSJSONSerialization.JSONObjectWithData let s = json as? NSString // Succeeds, s == Some("user-1") let a = json as? AccountId // Fails, a == nil 为什么第一个types转换成功而第二个转换失败呢? NSString有什么神奇的东西,它不会跨越Swift-only类吗? 我正在使用XCode版本6.1(6A1030)(撰写本文时为最新版本)。

我如何通过select器方法传递一个int值?

我想从我的select器方法传递一个int值,但select器方法只接受一个对象types参数。 int y =0; [self performselector:@selector(tabledata:) withObject:y afterDelay:0.1]; 方法执行在这里 -(int)tabledata:(int)cellnumber { NSLog(@"cellnumber: %@",cellnumber); idLabel.text = [NSString stringWithFormat:@"Order Id: %@",[[records objectAtIndex:cellnumber] objectAtIndex:0]]; } 但我没有得到确切的整数值在我的方法,我只获得id值。

Swift:返回自我types的数组

我想写一个类函数,它将返回一个类types的数组。 据我所知,我可以使用“Self”作为objective-c“instanceType”。 我的目标是用fetchObjects方法为NSManagedObject创build一个扩展。 这个方法将返回一个NSManagedObject子类的数组。 这是我的伪代码不能编译的例子: extension NSManagedObject { class func fetchObjects(entity: String, context: NSManagedObjectContext, predicate: NSPredicate?, sortDescriptors: NSSortDescriptor[]?) -> Self[] { // can't define return type of an array with type Self // also var declaration does not work var objects : Self[]? return objects } } 任何想法如何我可以定义一个自我types的数组? 谢谢你的帮助!

Objective C协议的使用

我有一个作业问题困扰着我,真的很糟糕。 以下是一个问题的简要解释。 想象一下,你正在开发一个存储联系人信息的应用程序。 地址簿可以包含许多实体types,例如人类,公司或其他任何具有联系信息的实体types。 现在,而不是显式检查每个对象types写一个协议,声明一个对象必须如何行为,并成功地出现在您的地址簿。 我回答这个问题的理解和努力是, 在@required标签下build立一个具有每种联系信息types常用方法的协议。 和其他所有不同的联系方式(如传真号码与公司有关系,但不是人员…)在@optional。 在运行时,您可以使用selector检查对象是否响应任何给定的方法。 怀疑:然而,这又是间接地明确检查对象types,对吗? 我的第二个想法是在java中使用类似abstract class东西。 这意味着从抽象类inheritance的类实现了自己的抽象方法。 作为一个天真的iOS开发人员,我不知道如何实现这个? 我不确定这是否会解决我的问题。 如果有人知道这一点,我想得到启发。 外部阅读到目前为止,请让我知道如果我正在寻找的答案是在这些链接之一。 我会再读一遍理解和解决这个:)。 谢谢。 http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjectiveC/Chapters/ocProtocols.html#//apple_ref/doc/uid/TP30001163-CH15-TPXREF144 http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjectiveC/Chapters/ocProtocols.html#//apple_ref/doc/uid/TP30001163-CH15-TPXREF146 http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjectiveC/Chapters/ocProtocols.html#//apple_ref/doc/uid/TP30001163-CH15-TPXREF149

Swift是否支持隐式转换?

例如,我有以下代码: let numberOfBlocks = 3 let blockWidth = SKSpriteNode(imageNamed: "image.png").size.width let padding = 20.0 let offsetX : Float = (self.frame.size.width – (blockWidth * numberOfBlocks + padding * (numberOfBlocks-1))) / 2 我得到了错误: “Double”不能转换为“UInt8” 有没有办法隐式转换数据types(也许只适用于原始数据types)? 编辑: 我知道如何使用Iducoolbuild议的特定types的构造函数来进行显式的转换。 但这对我的问题不是很有帮助,因为我们甚至不知道在哪里添加转换。 我在操场上简化了我的表情: 问题在于“填充”variables,错误信息是 “Double”不能转换为“UInt8”。 所以我做了转换: 那么现在问题在“blockWidth”variables中。 我再次添加了转换: 而错误信息是: types“UInt8”不符合协议“FloatLiteralCovertible” 最后的工作expression是: 它简单而快捷吗? 我不这么认为。

如何将符合相关types的协议的不同types添加到集合中?

作为学习练习,我正在用Swift重写我的validation库 。 我有一个ValidationRule协议,它定义了什么样的个人规则: protocol ValidationRule { typealias InputType func validateInput(input: InputType) -> Bool //… } 关联的typesInputType定义了要validation的input的types(例如String)。 它可以是明确的或通用的。 这里有两条规则: struct ValidationRuleLength: ValidationRule { typealias InputType = String //… } struct ValidationRuleCondition<T>: ValidationRule { typealias InputType = T // … } 在其他地方,我有一个函数用一个ValidationRule集合来ValidationRuleinput: static func validate<R: ValidationRule>(input i: R.InputType, rules rs: [R]) -> ValidationResult { let errors = […]

无法在Swift中将协议用作其他协议中的关联types

我有一个协议Address ,它从另一个协议inheritance, Validator和Address满足扩展中的Validator要求。 还有另一种协议, FromRepresentable ,它有一个associatedType ( ValueWrapper )要求,应该是Validator 。 现在,如果我尝试使用Address作为associatedType ,那么它不会编译。 它说, 推断types“地址”(通过匹配要求'valueForDetail')是无效的:不符合'Validator'。 这个用法是非法的吗? 我们不应该使用Address来代替Validator ,因为所有的Addresses都是Validator 。 下面是我正在尝试的代码片段。 enum ValidationResult { case Success case Failure(String) } protocol Validator { func validate() -> ValidationResult } //Address inherits Validator protocol Address: Validator { var addressLine1: String {get set} var city: String {get set} var country: String […]