开发者

How to encode NSNetService?

I have a class that has these 开发者_开发技巧two ivars:

@interface UserData : NSObject <NSCoding> {
    NSString *name;
    NSNetService *service;
}

I wanted to encode this into a NSData object eventually, so I implemented NSCoding:

- (id)initWithCoder:(NSCoder *)aDecoder {
    if ((self = [super init])) {
        name = [[aDecoder decodeObjectForKey:@"name"] copy];
        service = [[aDecoder decodeObjectForKey:@"service"] copy];
    }
    return self;
}

- (void)encodeWithCoder:(NSCoder *)aCoder
{
    [aCoder encodeObject:name forKey:@"name"];
    [aCoder encodeObject:service forKey:@"service"];
}

However, when I try to use archivedDataWithRootObject it gives the errors:

-[NSNetService encodeWithCoder:]: unrecognized selector sent to instance 0x100170c40

-Exception detected while handling key input. -[NSNetService encodeWithCoder:]: unrecognized selector sent to instance 0x100170c40

-* -[NSKeyedArchiver dealloc]: warning: NSKeyedArchiver deallocated without having had -finishEncoding called on it.

How can I make NSNetService work with NSCoding?

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜