小编Swa*_*lla的帖子

使用NSUserDefaults与Today Extension(小部件)共享一组自定义对象

这是我的第一篇论文帖子,所以在审核我的帖子技巧时请建设性的!

基本上,我的问题是我有一系列自定义对象,我需要与今天的扩展共享.对象表示待办事项列表中的任务,其属性用于存储有关每个任务的信息(名称,位置,dueDate,缩略图等).对象存储在一个数组中,该数组用于填充我的待办事项列表.我想做的就是将这个数组传递给我的小部件,这样我就可以填充第二个tableview,它将作为第一个的压缩版本(对于widget视图).

我应该指出我的小部件已正确设置,因为我已将它与包含的应用程序正确地链接在"组"中.我还成功地使用NSUserDefaults将NSStrings数组传递给窗口小部件,但是,当我尝试将对象数组传递给窗口小部件时,它崩溃了,我的日志显示为:

*** Terminating app due to uncaught exception 'NSInvalidUnarchiveOperationException', reason: '*** -[NSKeyedUnarchiver decodeObjectForKey:]: cannot decode object of class (Xitem)'
Run Code Online (Sandbox Code Playgroud)

我知道这次崩溃与归档对象(Xitem)有关,这似乎是在NSUserDefaults中保存自定义对象的必要步骤.但是,我已经测试了在包含应用程序的同一类中保存/加载数组,并且工作正常!(以下代码)

        NSData *encodedObject = [NSKeyedArchiver archivedDataWithRootObject:self.Xitems];
        NSUserDefaults *defaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.AaronTest"];
        [defaults setObject:encodedObject forKey:@"myArray"];
        [defaults synchronize];


        NSUserDefaults *defaults2 = [[NSUserDefaults alloc] initWithSuiteName:@"group.AaronTest"];
        NSData *encodedObject2 = [defaults2 objectForKey:@"myArray"];
        NSArray *array2 = [NSKeyedUnarchiver unarchiveObjectWithData:encodedObject2];

        for (Xitem *t in array2){

            NSLog(@"*****%@*****", t.itemName);
        }
Run Code Online (Sandbox Code Playgroud)

好的,正如所解释的,上面的代码按预期工作.但是,当我将此代码的第二个"unarchiver"插入我今天的小部件时,我得到上述错误.下面是我的代码,以显示我如何编码/解码对象(可能值得注意的是,这个对象是为了简化我的调试而创建的,只包含一个NSString属性):

Xitem.h

#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>


@interface Xitem : NSObject <NSCoding> 
{ 
NSString *itemName;
}

-(void)encodeWithCoder:(NSCoder*)encoder;
-(id)initWithCoder:(NSCoder*)decoder;

@property …
Run Code Online (Sandbox Code Playgroud)

widget objective-c nsuserdefaults nscoding ios

5
推荐指数
1
解决办法
910
查看次数

UITableViewRowAction自定义样式?

我想编辑UITableViewRowAction我的表格.我的细胞有圆角和边框,我想编辑它的样式RowAction以匹配我的细胞的样式.

据我所知,目前只能backgroundColor更改标题和样式(默认,破坏性,正常...)(链接).但是,我觉得这有点太受限制了?也许我可以UITableViewRowAction创建自己的外观和感觉?任何意见,将不胜感激.

不幸的是我无法发布示例图像,因为我还没有10个代表(哈哈).但是我觉得这个问题很简单,没有视觉表现就能被理解.

objective-c uitableview ios

3
推荐指数
1
解决办法
8735
查看次数