我的应用程序启用了后台获取背景模式并且我验证了plist包含适当的获取模式.
我还配置了如下间隔:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
application.setMinimumBackgroundFetchInterval(UIApplicationBackgroundFetchIntervalMinimum);
return true;
}
Run Code Online (Sandbox Code Playgroud)
我已经添加了处理程序如下:
func application(application: UIApplication, performFetchWithCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) {
// Get some new data here
completionHandler(UIBackgroundFetchResult.NewData);
}
Run Code Online (Sandbox Code Playgroud)
我尝试去调试 - >模拟背景提取,但不管它从未进入过什么performFetchWithCompletionHandler
.我还尝试在一个方案下运行应用程序,该方案选中了"由于后台获取事件而启动"选项.在这种方案下运行只需在模拟器中像往常一样启动应用程序而不需要调用performFetchWithCompletionHandler
.
有任何想法吗?
谢谢!
编辑:这似乎正在影响我的应用程序的发布版本,所以它可能不会被隔离到模拟器.我正在运行Swift 1.2.
编辑2:我的错误报告刚刚关闭,因为它是另一个错误报告的副本,概述了同样的问题.仍然没有确认问题与模拟器隔离的信息.
编辑3:没有提到Xcode 6.4 Beta 2发行说明中的修复程序.:-(
我有一个int16_t的2D查找表.
int16_t my_array[37][73] = {{**DATA HERE**}}
我有一个值的混合,范围从int8_t的范围之上到刚好低于int8_t的范围,并且一些值重复自己.我试图减少这个查找表的大小.
到目前为止我所做的是将每个int16_t值拆分为两个int8_t值,以显示浪费的字节.
int8_t part_1 = original_value >> 4;
int8_t part_2 = original_value & 0x0000FFFF;
// If the upper 4 bits of the original_value were empty
if(part_1 == 0) wasted_bytes_count++;
Run Code Online (Sandbox Code Playgroud)
我可以轻松删除浪费一个字节空间的零值int8_t,我也可以删除重复值,但我的问题是如何在保留基于两个索引查找的能力的同时删除这些值?
我打算将其转换为一维数组,并在每个重复值后添加一个数字,表示已删除的重复数量,但我正在努力解决我将如何识别什么是查找值以及什么是重复计数.此外,通过剥离浪费的字节的零int8_t值进一步复杂化.
编辑:此数组已存储在ROM中.RAM比ROM更受限制,因此它已经存储在ROM中.
编辑:我会尽快发布这个问题的赏金.我需要一个完整的答案,如何存储信息并检索它.只要我可以获得相同的值,它就不需要是2D数组.
编辑:添加下面的实际数组:
{150,145,140,135,130,125,120,115,110,105,100,95,90,85,80,75,70,65,60,55,50,45,40,35,30,25,20,15,10,5,0,-4,-9,-14,-19,-24,-29,-34,-39,-44,-49,-54,-59,-64,-69,-74,-79,-84,-89,-94,-99,104,109,114,119,124,129,134,139,144,149,154,159,164,169,174,179,175,170,165,160,155,150}, \
{143,137,131,126,120,115,110,105,100,95,90,85,80,75,71,66,62,57,53,48,44,39,35,31,27,22,18,14,9,5,1,-3,-7,-11,-16,-20,-25,-29,-34,-38,-43,-47,-52,-57,-61,-66,-71,-76,-81,-86,-91,-96,101,107,112,117,123,128,134,140,146,151,157,163,169,175,178,172,166,160,154,148,143}, \
{130,124,118,112,107,101,96,92,87,82,78,74,70,65,61,57,54,50,46,42,38,34,31,27,23,19,16,12,8,4,1,-2,-6,-10,-14,-18,-22,-26,-30,-34,-38,-43,-47,-51,-56,-61,-65,-70,-75,-79,-84,-89,-94,100,105,111,116,122,128,135,141,148,155,162,170,177,174,166,159,151,144,137,130}, \
{111,104,99,94,89,85,81,77,73,70,66,63,60,56,53,50,46,43,40,36,33,30,26,23,20,16,13,10,6,3,0,-3,-6,-9,-13,-16,-20,-24,-28,-32,-36,-40,-44,-48,-52,-57,-61,-65,-70,-74,-79,-84,-88,-93,-98,103,109,115,121,128,135,143,152,162,172,176,165,154,144,134,125,118,111}, \
{85,81,77,74,71,68,65,63,60,58,56,53,51,49,46,43,41,38,35,32,29,26,23,19,16,13,10,7,4,1,-1,-3,-6,-9,-13,-16,-19,-23,-26,-30,-34,-38,-42,-46,-50,-54,-58,-62,-66,-70,-74,-78,-83,-87,-91,-95,100,105,110,117,124,133,144,159,178,160,141,125,112,103,96,90,85}, \
{62,60,58,57,55,54,52,51,50,48,47,46,44,42,41,39,36,34,31,28,25,22,19,16,13,10,7,4,2,0,-3,-5,-8,-10,-13,-16,-19,-22,-26,-29,-33,-37,-41,-45,-49,-53,-56,-60,-64,-67,-70,-74,-77,-80,-83,-86,-89,-91,-94,-97,101,105,111,130,109,84,77,74,71,68,66,64,62}, \
{46,46,45,44,44,43,42,42,41,41,40,39,38,37,36,35,33,31,28,26,23,20,16,13,10,7,4,1,-1,-3,-5,-7,-9,-12,-14,-16,-19,-22,-26,-29,-33,-36,-40,-44,-48,-51,-55,-58,-61,-64,-66,-68,-71,-72,-74,-74,-75,-74,-72,-68,-61,-48,-25,2,22,33,40,43,45,46,47,46,46}, \
{36,36,36,36,36,35,35,35,35,34,34,34,34,33,32,31,30,28,26,23,20,17,14,10,6,3,0,-2,-4,-7,-9,-10,-12,-14,-15,-17,-20,-23,-26,-29,-32,-36,-40,-43,-47,-50,-53,-56,-58,-60,-62,-63,-64,-64,-63,-62,-59,-55,-49,-41,-30,-17,-4,6,15,22,27,31,33,34,35,36,36}, \
{30,30,30,30,30,30,30,29,29,29,29,29,29,29,29,28,27,26,24,21,18,15,11,7,3,0,-3,-6,-9,-11,-12,-14,-15,-16,-17,-19,-21,-23,-26,-29,-32,-35,-39,-42,-45,-48,-51,-53,-55,-56,-57,-57,-56,-55,-53,-49,-44,-38,-31,-23,-14,-6,0,7,13,17,21,24,26,27,29,29,30}, \
{25,25,26,26,26,25,25,25,25,25,25,25,25,26,25,25,24,23,21,19,16,12,8,4,0,-3,-7,-10,-13,-15,-16,-17,-18,-19,-20,-21,-22,-23,-25,-28,-31,-34,-37,-40,-43,-46,-48,-49,-50,-51,-51,-50,-48,-45,-42,-37,-32,-26,-19,-13,-7,-1,3,7,11,14,17,19,21,23,24,25,25}, \
{21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,21,20,18,16,13,9,5,1,-3,-7,-11,-14,-17,-18,-20,-21,-21,-22,-22,-22,-23,-23,-25,-27,-29,-32,-35,-37,-40,-42,-44,-45,-45,-45,-44,-42,-40,-36,-32,-27,-22,-17,-12,-7,-3,0,3,7,9,12,14,16,18,19,20,21,21}, \
{18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,18,17,16,14,10,7,2,-1,-6,-10,-14,-17,-19,-21,-22,-23,-24,-24,-24,-24,-23,-23,-23,-24,-26,-28,-30,-33,-35,-37,-38,-39,-39,-38,-36,-34,-31,-28,-24,-19,-15,-10,-6,-3,0,1,4,6,8,10,12,14,15,16,17,18,18}, \
{16,16,17,17,17,17,17,17,17,17,17,16,16,16,16,16,16,15,13,11,8,4,0,-4,-9,-13,-16,-19,-21,-23,-24,-25,-25,-25,-25,-24,-23,-21,-20,-20,-21,-22,-24,-26,-28,-30,-31,-32,-31,-30,-29,-27,-24,-21,-17,-13,-9,-6,-3,-1,0,2,4,5,7,9,10,12,13,14,15,16,16}, \
{14,14,14,15,15,15,15,15,15,15,14,14,14,14,14,14,13,12,11,9,5,2,-2,-6,-11,-15,-18,-21,-23,-24,-25,-25,-25,-25,-24,-22,-21,-18,-16,-15,-15,-15,-17,-19,-21,-22,-24,-24,-24,-23,-22,-20,-18,-15,-12,-9,-5,-3,-1,0,1,2,4,5,6,8,9,10,11,12,13,14,14}, \
{12,13,13,13,13,13,13,13,13,13,13,13,12,12,12,12,11,10,9,6,3,0,-4,-8,-12,-16,-19,-21,-23,-24,-24,-24,-24,-23,-22,-20,-17,-15,-12,-10,-9,-9,-10,-12,-13,-15,-17,-17,-18,-17,-16,-15,-13,-11,-8,-5,-3,-1,0,1,1,2,3,4,6,7,8,9,10,11,12,12,12}, \
{11,11,11,11,11,12,12,12,12,12,11,11,11,11,11,10,10,9,7,5,2,-1,-5,-9,-13,-17,-20,-22,-23,-23,-23,-23,-22,-20,-18,-16,-14,-11,-9,-6,-5,-4,-5,-6,-8,-9,-11,-12,-12,-12,-12,-11,-9,-8,-6,-3,-1,0,0,1,1,2,3,4,5,6,7,8,9,10,11,11,11}, \
{10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,9,9,7,6,3,0,-3,-6,-10,-14,-17,-20,-21,-22,-22,-22,-21,-19,-17,-15,-13,-10,-8,-6,-4,-2,-2,-2,-2,-4,-5,-7,-8,-8,-9,-8,-8,-7,-5,-4,-2,0,0,1,1,1,2,2,3,4,5,6,7,8,9,10,10,10}, \
{9,9,9,9,9,9,9,10,10,9,9,9,9,9,9,8,8,6,5,2,0,-4,-7,-11,-15,-17,-19,-21,-21,-21,-20,-18,-16,-14,-12,-10,-8,-6,-4,-2,-1,0,0,0,-1,-2,-4,-5,-5,-6,-6,-5,-5,-4,-3,-1,0,0,1,1,1,1,2,3,3,5,6,7,8,8,9,9,9}, \
{9,9,9,9,9,9,9,9,9,9,9,9,8,8,8,8,7,5,4,1,-1,-5,-8,-12,-15,-17,-19,-20,-20,-19,-18,-16,-14,-11,-9,-7,-5,-4,-2,-1,0,0,1,1,0,0,-2,-3,-3,-4,-4,-4,-3,-3,-2,-1,0,0,0,0,0,1,1,2,3,4,5,6,7,8,8,9,9}, \
{9,9,9,8,8,8,9,9,9,9,9,8,8,8,8,7,6,5,3,0,-2,-5,-9,-12,-15,-17,-18,-19,-19,-18,-16,-14,-12,-9,-7,-5,-4,-2,-1,0,0,1,1,1,1,0,0,-1,-2,-2,-3,-3,-2,-2,-1,-1,0,0,0,0,0,0,0,1,2,3,4,5,6,7,8,8,9}, \ …
Run Code Online (Sandbox Code Playgroud) 我使用webkit/mozilla边框半径和框阴影CSS属性,但我希望CSS验证(它目前没有).有没有办法让它验证?
我正在运行.NET 4.0 Web应用程序(不是网站)和PostSharp 1.5.我无法使用OnMethodBoundaryAspect基类执行OnEntry重写方法.这是一些相关的代码:
public sealed class MonitorAttribute : OnMethodBoundaryAspect {
public string[] SomeValue { get; protected set; }
public MonitorAttribute (params string[] someValue){
SomeValue = someValue;
}
public override void OnEntry(MethodExecutionEventArgs eventArgs){
// do Something here
base.OnEntry(eventArgs);
}
}
public sealed class MyUsageClass : IMyUsageClass {
[Monitor(new string[]{ 'Test' })
public void SomeMethod {
// Do something else in here
}
}
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?它永远不会击中OnEntry方法.我还尝试用新的2.0版本替换我的PostSharp.dll和PostSharp.Laos.dll依赖项.如果它有任何区别MyUsageClass
由StructureMap实例化.
我最近遇到过这个问题并认为它真的很有帮助.我的问题是,在ASP.NET中通过AJAX加载updatepanel后,你会如何调用一段javascript?
在面板加载后我需要重新初始化一个jQuery日期选择器.
当我使用Emgu播放视频时,它的播放速度比应该的速度快.这是相关的代码.
public Form1()
{
InitializeComponent();
_capture = new Capture("test.avi");
Application.Idle += RefreshFrames;
}
protected void RefreshFrames(object sender, EventArgs e)
{
imageBox.Image = _capture.QueryFrame();
}
Run Code Online (Sandbox Code Playgroud)
我尝试使用Capture对象上的SetCaptureProperty方法设置FPS,但它仍然以超快速运动方式播放.
我正在使用GPUImage和许多GPUImageView实例.目的是显示原始图像,在顶部层叠几片过滤图像,最后在原始图像上缓慢地对切片过滤器进行动画处理.想象一下,带有一些棕褐色条纹的图像会滚动显示正常图像和剖面图中的棕褐色图像.
我将此功能包装在UIView的子类中,如下所示:
import Foundation
import QuartzCore
class FilteredImageMaskView : UIView {
init(frame: CGRect, image: UIImage){
super.init(frame: frame);
let imageViewFrame = CGRectMake(frame.origin.x, 0.0, frame.size.width, frame.size.height);
let origImage = GPUImagePicture(image: image);
origImage.forceProcessingAtSizeRespectingAspectRatio(imageViewFrame.size);
// Display the original image without a filter
let imageView = GPUImageView(frame: imageViewFrame);
origImage.addTarget(imageView);
origImage.processImageWithCompletionHandler(){
origImage.removeAllTargets();
var contentMode = UIViewContentMode.ScaleAspectFit;
imageView.contentMode = contentMode;
// Width of the unfiltered region
let regularWidth: CGFloat = 30.0;
// Width of filtered region
let filterWidth: CGFloat = 30.0;
// How much we are moving …
Run Code Online (Sandbox Code Playgroud) 我使用的是Swift 1.2,我的目标是在静态UIImage上设置图像蒙版的动画.我实现的是一个快速版本的掩盖我最初在Objective-C中找到的图像.
func maskImage(image: UIImage, mask: UIImage) -> UIImage! {
let maskRef = mask.CGImage;
let mask = CGImageMaskCreate(
CGImageGetWidth(maskRef),
CGImageGetHeight(maskRef),
CGImageGetBitsPerComponent(maskRef),
CGImageGetBitsPerPixel(maskRef),
CGImageGetBytesPerRow(maskRef),
CGImageGetDataProvider(maskRef), nil, false);
let masked = CGImageCreateWithMask(image.CGImage, mask);
let retImage = UIImage(CGImage: masked);
return retImage;
}
Run Code Online (Sandbox Code Playgroud)
它很棒!然而,将它付诸实践是我的挑战.
有没有办法迭代地应用具有不同水平偏移的掩码或更好的方法来完全解决这个问题 - 也许使用CALayer实现?
谢谢你的帮助!
编辑:根据发布的答案,我补充说:
let image = UIImage(named: "clouds");
let imageView = UIImageView(image: image);
let layer = CALayer();
layer.contents = UIImage(named: "alpha-mask")?.CGImage;
layer.bounds = CGRectMake(0, 0, image.size.width, image.size.height);
// For other folks learning, this did not work
//let …
Run Code Online (Sandbox Code Playgroud) 我在 iOS 和 Android 上使用cordova-plugin-file
和cordova-plugin-media-capture
来捕获视频。此实现在 iOS 上完美运行,但在 Android 上不起作用。我已将问题追溯到FileReader
实例无法找到cordova-plugin-media-capture
已记录的文件。这是代码块:
if (navigator && navigator.device.capture && window.cordova.file) {
navigator.device.capture.captureVideo((mediaFiles: MediaFile[]) => {
if (mediaFiles.length > 0) {
const mediaFile = mediaFiles[0];
const type = mediaFile.type;
window.resolveLocalFileSystemURL((mediaFile as any).localURL, (fileEntry: Entry) => {
(fileEntry as FileEntry).file((file: File) => {
// "file" is a valid file with a local URL (cdvfile://localhost/sdcard/DCIM/....)
const fileReader = new FileReader();
fileReader.onloadend = (event: ProgressEvent) => {
console.log(event);
// event.target.error = …
Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个以表名作为参数的存储过程.是的我已经知道这是一个安全漏洞,但这是一个内部存储过程,不会面临SQL注入的典型风险.
到目前为止我所拥有的内容如下:
CREATE PROCEDURE [dbo].[myprocedure]
@tableName sysname
AS
DECLARE @cmd nvarchar(4000)
SET @cmd = N' Select blah blah from ' + @tableName
EXEC (@cmd)
GO
Run Code Online (Sandbox Code Playgroud)
查询将在理论上工作,但我的问题是我的查询超过4000个字符.是否有另一种方法在长度超过4000个字符的cmd变量中使用@tableName(nvarchar的最大值)?
似乎在向ASP.NET GridView添加行时,Tab索引的行为不符合预期(或期望).选项卡将向下移动到列中的每一行,然后移动到下一列,依此类推,而不是在一行中的每列上进行制表,然后移动到下一行.简单地说,它将垂直而不是水平.对于用户严重依赖键盘输入的数据输入应用程序,这可能是一个问题.
针对这个问题的解决方案?
任何人都可以指出我正确的方向如何实现像App Store用于屏幕截图的应用程序的图像库?我试图在水平图库中获取图像,以便用户可以浏览它们.应用程序商店很好地捕捉到每个图像.