第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何在NSUserDefault中存儲(chǔ)自定義對(duì)象

如何在NSUserDefault中存儲(chǔ)自定義對(duì)象

iOS
慕慕森 2019-06-04 17:30:12
如何在NSUserDefault中存儲(chǔ)自定義對(duì)象好吧,所以我已經(jīng)做了一些周旋,我意識(shí)到我的問(wèn)題,但我不知道如何解決它。我做了一個(gè)自定義類(lèi)來(lái)保存一些數(shù)據(jù)。我為這個(gè)類(lèi)創(chuàng)建對(duì)象,并且需要它們?cè)跁?huì)話(huà)之間持續(xù)。在我把所有信息都放進(jìn)去之前NSUserDefaults但這不管用。-[NSUserDefaults setObject:forKey:]: Attempt to insert non-property value '<Player: 0x3b0cc90>' of class 'Player'.當(dāng)我將自定義類(lèi)“Player”放入NSUserDefaults..顯然,我已經(jīng)讀過(guò)了NSUserDefaults只存儲(chǔ)某些類(lèi)型的信息。所以我如何讓我的對(duì)象NSUSerDefaults?我讀到應(yīng)該有一種方法來(lái)“編碼”我的自定義對(duì)象,然后把它放進(jìn)去,但是我不知道如何實(shí)現(xiàn)它,幫助是非常感謝的!謝謝!*編輯*好的,所以我使用了下面給出的代碼(謝謝!),但是我仍然有一些問(wèn)題?;旧?,代碼現(xiàn)在崩潰了,我不知道為什么,因?yàn)樗粫?huì)產(chǎn)生任何錯(cuò)誤。也許我錯(cuò)過(guò)了一些基本的東西,我只是太累了,但我們會(huì)看到。以下是我的自定義類(lèi)“Player”的實(shí)現(xiàn):@interface Player : NSObject {     NSString *name;     NSNumber *life;     //Log of player's life}//Getting functions, return the info- (NSString *)name;- (int)life;- (id)init;//These are the setters-      (void)setName:(NSString *)input; //string- (void)setLife:(NSNumber *)input; //number    @end實(shí)施文件:#import "Player.h"@implementation Player- (id)init {     if (self = [super init]) {         [self setName:@"Player Name"];         [self setLife:[NSNumber numberWithInt:20]];         [self setPsnCounters:[NSNumber numberWithInt:0]];     }     return self;}- (NSString *)name {return name;}- (int)life {return [life intValue];}- (void)setName:(NSString *)input {     [input retain];     if (name != nil) {         [name release];     }     name = input;}- (void)setLife:(NSNumber *)input {     [input retain];     if (life != nil) {         [life release];     }     life = input;}/* This code has been added to support encoding and decoding my objecst */-(void)encodeWithCoder:(NSCoder *)encoder{     //Encode the properties of the object     [encoder encodeObject:self.name forKey:@"name"];     [encoder encodeObject:self.life forKey:@"life"];}-(id)initWithCoder:(NSCoder *)decoder{     self = [super init];     if ( self != nil )     {         //decode the properties         self.name = [decoder decodeObjectForKey:@"name"];         self.life = [decoder decodeObjectForKey:@"life"];     }抱歉這么多密碼。只是想幫忙?;旧希搼?yīng)用程序?qū)?dòng),然后立即崩潰。我已經(jīng)把它縮小到了應(yīng)用程序的加密部分,那是它崩潰的地方,所以我做了一些錯(cuò)誤的事情,但我不確定是什么。再次感謝您的幫助,謝謝!(我還沒(méi)來(lái)得及解密,因?yàn)槲疫€沒(méi)有開(kāi)始加密。)
查看完整描述

3 回答

?
慕的地6264312

TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超6個(gè)贊

在Player類(lèi)中,實(shí)現(xiàn)以下兩個(gè)方法(用與您自己的對(duì)象相關(guān)的內(nèi)容替換對(duì)encodeObject的調(diào)用):

- (void)encodeWithCoder:(NSCoder *)encoder {
    //Encode properties, other class variables, etc
    [encoder encodeObject:self.question forKey:@"question"];
    [encoder encodeObject:self.categoryName forKey:@"category"];
    [encoder encodeObject:self.subCategoryName forKey:@"subcategory"];}- (id)initWithCoder:(NSCoder *)decoder {
    if((self = [super init])) {
        //decode properties, other class vars
        self.question = [decoder decodeObjectForKey:@"question"];
        self.categoryName = [decoder decodeObjectForKey:@"category"];
        self.subCategoryName = [decoder decodeObjectForKey:@"subcategory"];
    }
    return self;}

讀和寫(xiě)NSUserDefaults:

- (void)saveCustomObject:(MyObject *)object key:(NSString *)key {
    NSData *encodedObject = [NSKeyedArchiver archivedDataWithRootObject:object];
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults setObject:encodedObject forKey:key];
    [defaults synchronize];}- (MyObject *)loadCustomObjectWithKey:(NSString *)key {
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    NSData *encodedObject = [defaults objectForKey:key];
    MyObject *object = [NSKeyedUnarchiver unarchiveObjectWithData:encodedObject];
    return object;}

無(wú)恥地從以下地方借來(lái)的代碼:在nsuserdefaults中保存類(lèi)


查看完整回答
反對(duì) 回復(fù) 2019-06-04
  • 3 回答
  • 0 關(guān)注
  • 751 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)