Как кодировать NSNetService? - PullRequest
       10

Как кодировать NSNetService?

2 голосов
/ 01 июля 2011

У меня есть класс, в котором есть эти два ивара:

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

В конце концов я хотел закодировать это в объект NSData, поэтому я реализовал 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"];
}

Однако, когда я пытаюсь использовать archivedDataWithRootObject, он выдает ошибки:

- [NSNetService encodeWithCoder:]: нераспознанный селектор, отправленный экземпляру 0x100170c40

-Ошибка обнаружена при обработке клавиш. - [NSNetService encodeWithCoder:]: нераспознанный селектор, отправленный экземпляру 0x100170c40

- * - [NSKeyedArchiver dealloc]: предупреждение: NSKeyedArchiver освобожден не имея -finishEncoding призвал его.

Как мне заставить NSNetService работать с NSCoding?

...