- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
我必须存档一个值为 INFINITY
的 float
,然后再将其取消存档。
这是我的示例代码:
要归档的对象:
@interface CodeInf : NSObject <NSCoding>
@end
@implementation CodeInf
- (void)encodeWithCoder:(NSCoder *)encoder {
float inf = INFINITY;
[encoder encodeFloat: inf forKey:@"INFINITY"];
}
- (id)initWithCoder:(NSCoder *)decoder {
if (self = [super init]) {
float decodedInf = [decoder decodeFloatForKey: @"INFINITY"];
}
return self;
}
@end
这是存档/取消存档代码:
CodeInf *myCodeInf = [[CodeInf alloc] init];
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:myCodeInf];
myCodeInf = [NSKeyedUnarchiver unarchiveObjectWithData:data];
归档工作,但 dearchiving 引发错误:
* Terminating app due to uncaught exception 'NSRangeException', reason: '* -[NSKeyedUnarchiver decodeFloatForKey:]: value (inf) for key (INFINITY) too large to fit in 32-bit float'
这是 dearchiver 中的错误,还是我做错了什么?
最佳答案
看起来像一个错误。向 Apple 提交错误报告。
解决方法是使用 encodeDouble
和 decodeDoubleForKey
- 您可以将值保持为 float
并且 C 规则不需要强制转换。
关于ios - float INFINITY 可以被 NSCoder 归档,但不能被 dearchived,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17059941/
我正在尝试通过 SymSpell 实现自动更正 我已经在容器应用程序中创建了字典,应该保存它并从键盘扩展读取它 字典中包含一个dictionaryItem对象,需要序列化才能被NSCoder保存 我试
我正在 Swift 中实现一个 Circle 类(UIView 的子类),它根据框架在其初始化程序中设置其 radius像这样传入 init(frame: CGRect): override init
这是我的代码: import Foundation class Person: NSObject, NSCoding { var name: String init(name: String) {
如何使用 NSCoder 来编码和解码自定义类型? 例如,如何将 NSCoder 与“STATE”实例一起使用,其中: typedef enum { ON, OFF } STATE; 最佳答案 您可以
所以,我是 iOS 新手,一直在使用在线教程来学习该平台。我正在使用的教程是在我使用 iOS 10 的同时使用 iOS 9 构建应用程序。因此,我遇到了标题问题。这是一些代码: CalendarEve
在下面的代码中,sharedInstance 方法中的属性从未正确设置,我不明白为什么。在我用存档器保存它之前,我似乎有正确的值。 #import "User.h" static User *
所以,我是 iOS 新手,一直在使用在线教程来学习该平台。我正在使用的教程是在我使用 iOS 10 时使用 iOS 9 构建应用程序。因此我遇到了标题问题。这是一些代码: CalendarEvent.
我正在开发 iphone 应用程序。 我使用 NSCoder。 我的应用程序.h #define ITEMS_KEY @"items" #define CATEGORIES_KEY @"categor
我正在开发一个 iPhone 应用程序,但我的共享单例类遇到了一些问题。我使用共享单例来存储两个变量int gameRuns 和 int totalScore每次用户加载应用程序时,“gamRuns”
当使用NSCoder和NSKeyedArchiver时,我知道数据是以二进制格式存储的。那么,存储文件最合适的文件扩展名是什么?许多教程都使用 .plist,但我相信这应该是文本属性列表 ~ 键/值对
尝试在另一个类(Swipe)中实例化使用 NSCoder 的类(SettingsView)时遇到问题。 SettingsView 类已经是目标 -C 类(FXBlurView) 的实例 我收到以下错误
我正在开发我的第一个 Swift iOS 应用程序,在序列化和保存从服务器获取 JSON 的对象时遇到问题。我正在使用Gloss ,一个轻量级 JSON 解析库,它定义了一个 Decodable 协议
我定义了一个具有 [String] 和 Float 属性的类,它在 NSCoder 的编码过程中工作正常,但在解码时总是失败。我在代码中添加了guard let,发现是Float $的问题。 我不知道
我有一个用户Class使用 saveuser()每当应用程序终止时方法。用户有两个 Arrays定制Classes该子类NSObject 。这是我的编码方法。 func encode(with aCo
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 8 年前。 Improve th
当对象的属性在存档和取消存档过程之间发生变化时,我在使用 NSKeyedArchiver 和 NSKeyedUnarchiver 时遇到了一些麻烦。这是一个具体的例子: 我有一个类,比如说Task,它
这可能是一个幼稚的问题 - 但我想仔细检查以避免在 UIDocument 上浪费时间,如果它不符合我的要求的话。 背景:我有一个应用程序,我为其创建了一个简单的文件系统来将用户创建的文档保存为 pli
我有两个用于保存数据的模型类,我在解码数据时崩溃了。 第一类: class User: NSObject,NSCoding, Mappable { var authenticationToke
我基于此处的示例创建了 UILabel 的子类:UILabel doesn't show inputView .我正在尝试在子类化 UITableViewCell 的类中创建标签的实例。我遇到的问题是
我有一个对象,我必须使用 encodewithcoder 进行编码,但它是一个“长”数字,我不确定是否必须像简单的 int、int32 或 int64 那样对其进行编码。 Apple 的文档似乎对我来
我是一名优秀的程序员,十分优秀!