小编bra*_*onb的帖子

NSKeyedUnarchiver unarchiveObjectWithFile:在init:方法中返回nil

更新:如果我从applicationDidFinishLaunching中调用archiveRootObject:如果我从singleton类的init:方法调用它,它返回nil.

我对NSKeyedUnarchiver unarchiveObjectWithFile的行为非常困惑.文档说如果文件不存在,它将返回nil.使用我的一个对象,会发生以下情况:

Game *g1 = [Game getGame];
NSString *archivePath = [Game getArchivePath];
bool success = [NSKeyedArchiver archiveRootObject:g1 toFile:archivePath];
Game *g2 = [NSKeyedUnarchiver unarchiveObjectWithFile:archivePath];

// success is true, g2 is nil
Run Code Online (Sandbox Code Playgroud)

我已经验证该文件确实存在并且正由archiveRootObject:方法写入.我做错了什么阻止我将游戏对象从存档中取回?

iphone cocoa-touch

9
推荐指数
2
解决办法
7856
查看次数

类型不可序列化,因为它不公开?

我有一个公共类,不能正确序列化.尝试时,抛出以下异常:

数据协定类型"MyProject.MyClass"不可序列化,因为它不是公共的.将类型设置为public将修复此错误.或者,您可以将其设置为内部,并使用程序集上的InternalsVisibleToAttribute属性以启用内部成员的序列化 - 有关更多详细信息,请参阅文档.请注意,这样做会产生一定的安全隐患.

我的班级公开的,但是:

[DataContract]
public class MyClass
{
    [DataMember]
    public string Name { get; set; }

    [DataMember]
    private int Count;

    public MyClass()
    {
        Name = string.Empty;
        Count = 0;
    }
}
Run Code Online (Sandbox Code Playgroud)

当课程明显公开时,为什么我会得到这个例外?

c# windows-phone-7

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

HubTile的倾斜效果

我把TiltEffect.IsTiltEnabled属性添加到了我的HubTile:

<toolkit:HubTile toolkit:TiltEffect.IsTiltEnabled="True" Title="title" Message="This is message" x:Name="name" DisplayNotification="False" Source="pB.png" Tap="tap" />
Run Code Online (Sandbox Code Playgroud)

我还在页面的构造函数中将HubTile类型添加到TiltableItems集合中,每个:

public HubPage()
{
    TiltEffect.TiltableItems.Add(typeof(HubtTile));
}
Run Code Online (Sandbox Code Playgroud)

但HubTile没有倾斜效果....

谢谢!

windows-phone-7 windows-phone-7.1

2
推荐指数
1
解决办法
2928
查看次数