Tag: 关联types

我应该如何读取jsonstring的数据? 苹果手机

我有一个NSString "[{"van" : 1,312, "vuan":12,123}] ,为了得到每个键的这个值,我这样做: NSData *data1 = [jsonResponse1 dataUsingEncoding:NSUTF8StringEncoding]; jsonArray = [NSJSONSerialization JSONObjectWithData:data1 options:kNilOptions error:&err]; self.van = [NSMutableArray arrayWithCapacity:1]; self.vuan = [NSMutableArray arrayWithCapacity:1]; for (NSDictionary *json in jsonArray) { NSString * value = [json objectForKey:@"van"]; [self.van addObject:value]; lbl1.text = value; NSString * value1 = [json objectForKey:@"vuan"]; [self.vuan addObject:value1]; lbl4.text = value1; } 可能是我不必使用数组,而是直接在NSDictionary转换NSData […]

在swift中,Self.Type不能直接转换为扩展名为Objective-c类的AnyClass

我试图创build结构方法来创build正确的笔尖名称的UIViewController(以修复iOS8默认的初始化问题)。 为此,我添加了扩展名: extension UIViewController { class func create() -> Self { if #available(iOS 9.0, *) { return self.init() } else { let clsName = NSStringFromClass(self).componentsSeparatedByString(".").last! return self.init(nibName: clsName, bundle: nil) } } } 然而,编译器问题错误: Cannot convert value of type 'Self.Type' to expected argument type 'AnyClass' (aka 'AnyObject.Type') NSStringFromClass(self) Cannot convert value of type 'Self.Type' to […]

iOS:将id转换为int

我有麻烦将对象的id转换为int(或NSINteger),以便我可以稍后在循环中使用它。 情况如下: // "tasks" is a mutable array int taskNo = [[tasks indexOfObject:@"something"] integerValue]; 但结果是: Bad receiver type 'NSUInteger' (aka 'unsigned int') 我发现类似的代码类似于我上面的代码,但不幸的是,它不适合我。 我想我一定会错过一些简单的东西。 非常感谢!

safari ios无法打开存折pkpass

我已经看到这个主题的一些话题,但没能find答案: Safari无法打开我作为电子邮件用户发送的.pkpass文件 首先,我认为这可能与我的设置有关,但后来我发现我也无法打开示例.pkpass从这个网站http://www.tomttb.com/test/pass/full_sample/ 我的文件和例子都有内容types设置为application / vnd.apple.pkpass 在Android上,我使用PassWallet App,可以下载.pkpass并将其添加到存折中。 有任何想法吗?

核心数据,NSNumber,整数32和整数64

在核心数据中,我有许多属性声明为整数64,然后通过NSNumber属性(这是默认情况下)访问。 如果我通过以下方式存储和访问这些值,是否重要? NSNumber *mySetValue = [NSNumber numberWithInt:someIntValue]; [myObject setMyNumberProperty:mySetValue]; int myRetrievedValue = [myObject.myNumberProperty intValue]; 或通过 NSNumber *mySetValue = [NSNumber numberWithInteger:someIntegerValue]; [myObject setMyNumberProperty:mySetValue]; NSInteger myRetrievedValue = [myObject.myNumberProperty integerValue]; ? 有两种情况我想知道答案:1)如果所需的价值是用于计算(它拥有一个数量或价值将被转换为货币),2)如果该值只是一种types基本上只会与自己比较,不会用于任何计算。 在一种情况下使用numberWithInt和intValue而不是两种情况下,还是在两种情况下都必须使用numberWithInteger和integerValue? 另外,如果我以前已经将所有的值存储为[NSNumber numberWithInt:] – 我可以简单地改变我现在存储/检索值的方式,还是我需要保持一致性,以免造成问题当前用户数据? 我特别感兴趣的是在32位和64位的iOS应用程序中工作。 另外 – 如果核心数据值是整数32,整数16,整数64等,它是否有所不同?

Swift 3中的十进制到双精度转换

我正在将一个项目从Swift 2.2迁移到Swift 3 ,而且我试图摆脱旧的Cocoa数据types。 我的问题是在这里:将NSDecimalNumber迁移到Decimal 。 我曾经桥接NSDecimalNumber在Swift 2.2中 Double : let double = 3.14 let decimalNumber = NSDecimalNumber(value: double) let doubleFromDecimal = decimalNumber.doubleValue 现在,切换到Swift 3 : let double = 3.14 let decimal = Decimal(double) let doubleFromDecimal = ??? decimal.doubleValue不存在,也不是Double(decimal) ,甚至没有Double(decimal) decimal.doubleValue decimal as Double …唯一的黑客我想出来的是: let doubleFromDecimal = (decimal as NSDecimalNumber).doubleValue 但是,这将是完全愚蠢的尝试摆脱NSDecimalNumber ,并不得不在一段时间内使用它… 那么,要么我错过了一些明显的东西,请原谅你浪费时间,或者我认为还有一个需要解决的漏洞。 在此先感谢您的帮助。 […]

打开UIButton标题:types“String”的expression式模式不能匹配“String ?!”types的值

我试图在@IBAction方法中使用一个开关,该方法挂钩了多个button @IBAction func buttonClick(sender: AnyObject) { switch sender.currentTitle { case "Button1": print("Clicked Button1") case "Button2": print("Clicked Button2") default: break } 当我尝试上述,我得到以下错误: “String”types的expression式不能匹配“String ?!”types的值

在领域查询(使用Swift)

我正在玩realm.io。 我写了几个对象,现在我想查询它们。 我的数据类: class Sample : RLMObject { dynamic var sampleKey : String = "" } 和我的查询代码 @IBAction func readLocalRecord(sender: UIButton) { let s : NSString = NSString.stringWithString("sampleKey == SampleValue") let p : NSPredicate = NSPredicate(format: "sampleKey = %@", argumentArray: NSArray(object: NSString.stringWithString("SampleValue"))) // the following throws exception, that I cannot catch in Swift: // 'Unsupported […]

快速方法将投射到?

我今天下午抽筋了。 这应该很容易。 我没有阅读文档。 https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/TypeCasting.html 很容易转换单个的浮动CGFloat的实例,但我正在寻找一个快速的方法来将大于50万个[浮点]元素的arrays投射到[CGFloat]。 var sphereRadiusFloat:[Float] = [0.0,1.0,2.0] var sphereRadiusCGFloat:[CGFloat] = [] sphereRadiusCGFloat = sphereRadiusFloat as CGFloat 错误是 CGFloat不能转换为[CGFloat] 我也试过了 sphereRadiusCGFloat = CGFloat(sphereRadiusFloat) 这给出了错误 找不到接受提供的参数的“init”的重载操作符。

反转范围会导致不匹配的types

我想使用一个variables来保存通常是某个范围的东西,例如Range<Int> ,这样我就可以使用条件逻辑来改变循环的范围而不需要复制/粘贴for循环。 例如: let range = aNumber % 2 == 0 ? 0..<10 : (0..<10).reverse() for i in range { /* for loop logic */ } 行let range = …将导致错误: Result values in '? :' expression have mismatching types 'Range<Int>' and 'ReverseRandomAccessCollection<Range(Int)' Result values in '? :' expression have mismatching types 'Range<Int>' and 'ReverseRandomAccessCollection<Range(Int)' 。 […]