我有一个使用[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) 我意识到在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版本上正确播放?
或者,我应该使用更好的实现吗?
我开发了一个企业应用程序,我已经安装到一组iOS 9.1和9.2 iPad上.
在应用程序安装后我已经信任该配置文件(例如,按照此问题中的步骤:iOS9不受信任的企业开发人员,无法信任),该应用程序运行正常.
几天/几周后,"不可信企业开发",弹出开始再次出现时,应用程序启动,并在设置>通用>设备管理应用程序显示为"未验证"
有没有其他人经历过这个/有没有办法绕过它?
我目前还不确定是否存在导致它的特定步骤(例如,已经过了特定的时间/该单元已插入Mac /等).我现在正努力解决这个问题.
编辑:我对原始问题进行了一些编辑.我现在已经意识到该应用程序仍然是可信的,但不再被验证(我之前没有意识到这两者之间存在差异).
以下屏幕截图来自iPad上的"设备管理"部分.这是在应用程序受信任和验证后的几天内拍摄的; 并且没有问题.
我已经向Apple提出了一个错误报告,但还没有收到回复.
访问被拒绝.
描述:访问提供此请求所需的资源时发生错误.可能未配置服务器以访问请求的URL.
错误消息401.2.:未授权:由于服务器配置登录失败.验证您是否有权根据您提供的凭据和Web服务器上启用的身份验证方法查看此目录或页面.请与Web服务器的管理员联系以获取其他帮助.版本信息:Microsoft .NET Framework版本:4.0.30319; ASP.NET>版本:4.0.30319.18010
我从这里按照简单的教程,运行应用程序并收到此消息.
我正在尝试使用WPF ListBox创建Graph控件.我创建了自己的Canvas,它来自VirtualizingPanel,我自己处理项目的实现和虚拟化.
然后将列表框的项面板设置为我的自定义虚拟化画布.
我遇到的问题发生在以下场景中:
是什么导致了这个"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) 我有一个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.突破内容
欢迎任何建议.干杯
我正在从命令行安装SQL Server 2012,作为我正在创建的安装程序的一部分.
我想使用混合安全性(例如,允许SQL和Windows身份验证).
从查看Microsoft安装指南,我可以看到设置/SECURITYMODE
为SQL
和/SAPWD
密码将提供SQL模式,并且通过不设置它们,我可以获得默认值(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)
此代码给我一个权限错误.有任何想法吗?
我有一个带有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) 我正在重新签名一个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; 但是这会产生同样的错误