小编Hae*_*nal的帖子

NSUserDefaults在iOS 8中不可靠

我有一个使用[NSUserDefaults standardUserDefaults]存储会话信息的应用程序.通常,此信息会在应用启动时检查,并在应用退出时更新.我发现它似乎在iOS 8中不可靠.

我目前正在iPad 2上进行测试,但如果需要,我可以在其他设备上进行测试.

有些时候,退出之前写入的数据不会在应用程序启动时持续存在.同样,在退出之前删除的键有时在启动后似乎存在.

我编写了以下示例,试图说明问题:

- (void)viewDidLoad 
{
    [super viewDidLoad];

    NSData *_dataArchive = [[NSUserDefaults standardUserDefaults] 
                                            objectForKey:@"Session"];

    NSLog(@"Value at launch - %@", _dataArchive);

    NSString *testString = @"TESTSTRING";
    [[NSUserDefaults standardUserDefaults] setObject:testString 
                                           forKey:@"Session"];
    [[NSUserDefaults standardUserDefaults] synchronize];

    _dataArchive = [[NSUserDefaults standardUserDefaults] 
                     objectForKey:@"Session"];

    NSLog(@"Value after adding data - %@", _dataArchive);

    [[NSUserDefaults standardUserDefaults] removeObjectForKey:@"Session"];
    [[NSUserDefaults standardUserDefaults] synchronize];

    _dataArchive = [[NSUserDefaults standardUserDefaults] 
                     objectForKey:@"Session"];

    NSLog(@"Value before exit - %@", _dataArchive);

    exit(0);
}
Run Code Online (Sandbox Code Playgroud)

运行上面的代码,我(通常)得到下面的输出(这是我所期望的):

Value at launch - (null)
Value after adding data - TESTSTRING
Value after …
Run Code Online (Sandbox Code Playgroud)

objective-c nsuserdefaults ios ios8

32
推荐指数
2
解决办法
2万
查看次数

Android HLS Streaming - 不同的Android版本在Stream中加载不同的位置

我意识到在Android中支持HLS的程度方面存在一些问题.我正在尝试编写一个小型视频播放器演示(尽可能多地使用设备); 最好不要使用第三方图书馆; 可以流式传输HLS视频.

注意:我目前正在测试JellyBean 4.2.2,但可以访问其他版本

我已经设法使用MediaPlayer类,以便我的应用程序能够开始播放流(例如Apple的测试视频BipBopAll),但它似乎正在加载流的错误部分,因为视频似乎从29分钟开始(大约三十秒后完成).

我使用的代码非常基本:

private void playTrack()
{   
    player = new MediaPlayer();

    try 
    {                   
        player.setDisplay(holder);
        player.setDataSource("http://devimages.apple.com/iphone/samples/bipbop
                              /bipbopall.m3u8");
        player.prepare();

    } 
    catch (...) 
    {
    }
    player.start();
}
Run Code Online (Sandbox Code Playgroud)

更新:我在ICS 4.0.4上测试了相同的代码,它运行正常.在3.0.1中进行测试,在15分钟时加载流,然后从那里正确运行.

我该怎么做才能确保流在开始时启动,并在多个Android版本上正确播放?

或者,我应该使用更好的实现吗?

android video-streaming http-live-streaming

18
推荐指数
2
解决办法
2万
查看次数

未验证的企业开发人员消息在iOS 9中重新出现

我开发了一个企业应用程序,我已经安装到一组iOS 9.1和9.2 iPad上.

在应用程序安装后我已经信任该配置文件(例如,按照此问题中的步骤:iOS9不受信任的企业开发人员,无法信任),该应用程序运行正常.

几天/几周后,"不可信企业开发",弹出开始再次出现时,应用程序启动,并在设置>通用>设备管理应用程序显示为"未验证"

有没有其他人经历过这个/有没有办法绕过它?

我目前还不确定是否存在导致它的特定步骤(例如,已经过了特定的时间/该单元已插入Mac /等).我现在正努力解决这个问题.

编辑:我对原始问题进行了一些编辑.我现在已经意识到该应用程序仍然是可信的,但不再被验证(我之前没有意识到这两者之间存在差异).

以下屏幕截图来自iPad上的"设备管理"部分.这是在应用程序受信任和验证后的几天内拍摄的; 并且没有问题.

设备管理截图

我已经向Apple提出了一个错误报告,但还没有收到回复.

ios ios-enterprise ios9

14
推荐指数
2
解决办法
9481
查看次数

设置MVC应用程序后访问被拒绝错误

访问被拒绝.

描述:访问提供此请求所需的资源时发生错误.可能未配置服务器以访问请求的URL.

错误消息401.2.:未授权:由于服务器配置登录失败.验证您是否有权根据您提供的凭据和Web服务器上启用的身份验证方法查看此目录或页面.请与Web服务器的管理员联系以获取其他帮助.版本信息:Microsoft .NET Framework版本:4.0.30319; ASP.NET>版本:4.0.30319.18010

我从这里按照简单的教程,运行应用程序并收到此消息.

c# asp.net-mvc-4

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

WPF Listbox Virtualization创建DisconnectedItems

我正在尝试使用WPF ListBox创建Graph控件.我创建了自己的Canvas,它来自VirtualizingPanel,我自己处理项目的实现和虚拟化.

然后将列表框的项面板设置为我的自定义虚拟化画布.

我遇到的问题发生在以下场景中:

  • 首先创建ListBox项目A.
  • 列表框项目B在画布上的项目A的右侧创建.
  • 列表框项目A首先被虚拟化(通过将其平移到视图之外).
  • ListBox项目B被第二次虚拟化(再次通过将其平移到视图之外).
  • 将ListBox项目A和B置于视图中(即:实现它们)
  • 使用Snoop,我检测到ListBox现在有3个项目,其中一个是直接位于ListBox项目B下面的"DisconnectedItem".

是什么导致了这个"DisconnectedItem"的创建?如果我首先虚拟化B,然后是A,则不会创建此项目.我的理论是,虚拟化ListBox中其他项之前的项会导致子项断开连接.

使用包含数百个节点的图表时问题更加明显,因为当我平移时,我最终会收到数百个断开连接的项目.

以下是画布代码的一部分:

/// <summary>
/// Arranges and virtualizes child element positionned explicitly.
/// </summary>
public class VirtualizingCanvas : VirtualizingPanel
{
   (...)

    protected override Size MeasureOverride(Size constraint)
    {
        ItemsControl itemsOwner = ItemsControl.GetItemsOwner(this);

        // For some reason you have to "touch" the children collection in 
        // order for the ItemContainerGenerator to initialize properly.
        var necessaryChidrenTouch = Children;

        IItemContainerGenerator generator = ItemContainerGenerator;

        IDisposable generationAction = null;

        int index = 0;
        Rect visibilityRect …
Run Code Online (Sandbox Code Playgroud)

.net c# wpf virtualization

13
推荐指数
2
解决办法
5244
查看次数

通过有序列表CSS/HTML中的数字敲击

我有一个HTML有序列表,我需要应用删除线.我在CSS中做了这个,如下所示:

.Lower-Alpha {
  list-style: lower-alpha;
  margin-top: 2pt;
  margin-bottom: 2pt;
  text-decoration: line-through;
}
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,这会打击列表中的内容,而不是列表的数量(我需要同时执行这两项操作).

我得到了:a.突破内容

但我需要: a.突破内容

欢迎任何建议.干杯

html css

8
推荐指数
1
解决办法
1454
查看次数

将/ SECURITYMODE设置为SQL Server 2012安装的混合模式

我正在从命令行安装SQL Server 2012,作为我正在创建的安装程序的一部分.

我想使用混合安全性(例如,允许SQL和Windows身份验证).

从查看Microsoft安装指南,我可以看到设置/SECURITYMODESQL/SAPWD密码将提供SQL模式,并且通过不设置它们,我可以获得默认值(Windows身份验证).

但是如何指定我想在命令行使用混合模式?

installation command-line-arguments sql-server-2012

8
推荐指数
1
解决办法
7590
查看次数

从Windows 8应用程序在Windows资源管理器中打开文件?

我想编写一个函数,它可以简化我的Windows 8沉浸式应用程序,并在资源管理器中打开一个文件 - 最好是文件位于包含多个文件的文件夹中,文件突出显示.

 public async void OpenFile( string filePath)
 {
     StorageFile File = await StorageFile.GetFileFromApplicationUriAsync
                              (new Uri(filePath, UriKind.RelativeOrAbsolute)); ;

     if (File != null)
     {
         await Launcher.LaunchUriAsync(new Uri(File.Path));
     }
 }
Run Code Online (Sandbox Code Playgroud)

此代码给我一个权限错误.有任何想法吗?

c# windows windows-8

8
推荐指数
2
解决办法
1654
查看次数

Android - 如何隐藏当前片段的菜单选项

我有一个带有FrameLayout和菜单的ActionBar活动.当用户点击菜单项时,我用相关的新片段替换片段.但是,我看不到一种明显的方法来删除所选片段的菜单项.

public class MainActivity extends ActionBarActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        if (savedInstanceState == null) {
            StudyFragment startFragment = new StudyFragment();
            startFragment.setArguments(getIntent().getExtras());
            getSupportFragmentManager().beginTransaction().add
                                      (R.id.container, startFragment).commit();
        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();

        switch (id) {
        case R.id.action_study:
            replaceFragment((Fragment)new StudyFragment());
            break;
        case R.id.action_list: 
            replaceFragment((Fragment)new ListFragment());
            break;
        // etc
        }
        return super.onOptionsItemSelected(item);
    }

    private void replaceFragment(Fragment f) {
        FragmentTransaction transaction =
                                getSupportFragmentManager().beginTransaction(); …
Run Code Online (Sandbox Code Playgroud)

android android-fragments

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

重新签署包含框架的IPA

我正在重新签名一个iOS应用程序(使用iResign),以便将其上传到App Store; 作为其中的一部分,我正在更改捆绑ID. 我只有IPA(不是源代码).

该应用程序包含第三方框架.

辞职似乎没事; 但是当我使用Application Loader上传时,我收到以下错误:

ERROR ITMS-90046: "Invalid Code Signing Entitlements. Your application bundle's signature 
contains code signing entitlements that are not supported on iOS. 
Specifically, value 'XXXXXXXXXX.COM.X.Y.Z.A' for key 'application-identifier' in 
'Payload/APPNAME.app/Frameworks/FRAMEWORKNAME.framework/FRAMEWORKNAME' is not supported. 
This value should be a string starting with your TEAMID, followed by a dot '.', followed by
the bundle identifier."
Run Code Online (Sandbox Code Playgroud)

(显然我已经改变了CAPS中显示的值)

我假设问题是我的entitlements.plist中的application-identifier与我的应用程序中的Bundle标识符匹配,但与框架中的Bundle标识符不匹配.

为了排除它,我在框架和应用程序上设置了相同的Bundle标识符.这确实允许我上传到应用商店; 但是当我尝试将应用程序安装到iPad上时失败并出现错误.

我是否需要为框架提供单独的权利文件?我该如何解决这个问题?

更新:只是为了排除它,我尝试使用通配符配置文件和权利plist; 但是这会产生同样的错误

code-signing codesign ios ipa

6
推荐指数
1
解决办法
3839
查看次数