小编Dav*_*ist的帖子

"提交时,您的二进制文件未针对iPhone 5进行优化"(ITMS-90096)

这是我的第一个ios应用程序,当我尝试将其提交到应用商店时,它会给我ITMS-90096错误.

错误截图

我想我已经上传了所有正确的图标和启动画面图像.它说明了iphone-5上4英寸显示器的launchimage,但我不知道在哪里添加它.

这是我的启动图像源.

启动图像源

我对ios开发相当新,我有一个小的android背景和添加和提交应用程序的ios过程对我来说似乎很陌生.

iphone ios xcode6

66
推荐指数
5
解决办法
4万
查看次数

iOS:为什么我不能将nil设置为NSDictionary值?

这可能是一个非常基本的问题,但我想知道为什么我不能将nil指定为NSDictionary值?我在我的代码中有很多地方.如果[q objectForKey:@"text"]是零,那么App正在崩溃.

NSMutableDictionary *dict = [[NSMutableDictionary alloc] initWithCapacity:2];
[dict setObject:[q objectForKey:@"text"] forKey:@"text"];
Run Code Online (Sandbox Code Playgroud)

在将其分配给字典之前,我必须检查无处不在的nil.这是唯一正确的做法吗?我错过了一些明显的东西吗

if([q objectForKey:@"text"] != nil)
    [dict setObject:[q objectForKey:@"text"] forKey:@"text"];
else
    [dict setObject:@"" forKey:@"text"];
Run Code Online (Sandbox Code Playgroud)

iphone null nsdictionary ios

43
推荐指数
3
解决办法
4万
查看次数

如何为多个属性创建CABasicAnimation?

我有这个代码来动画CALayer元素.

CABasicAnimation *makeBiggerAnim=[CABasicAnimation animationWithKeyPath:@"radius"];
makeBiggerAnim.duration=0.2;
makeBiggerAnim.fromValue=[NSNumber numberWithDouble:20.0];
makeBiggerAnim.toValue=[NSNumber numberWithDouble:40.0];
makeBiggerAnim.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
Run Code Online (Sandbox Code Playgroud)

我的问题是,现在一切正常,我想同时使用同一元素的另一个属性.我见过你可以做添加动画和东西.

我的问题是:

  • 添加剂属性是最好/唯一的方法吗?(一次动画同一对象的多个属性)

谢谢!

animation core-animation caanimation ios

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

具有非零`内容'的QTMovieLayer的iOS替代品?

背景

QTKit(QuickTime Kit)是10.3天的Mac框架,例如在10.5中添加了一些图层QTMovieLayer.QTMovieLayer的一个好处是你可以使用content图层上的常规属性访问电影内容并获取一个CAImageQueue对象.这样做的好处是你可以创建一堆常规CALayers并将图像队列设置为它们的内容,并通过设置正确的方式为所有图层提供它们自己的电影部分contentRect.这意味着您可以创建类似下图的图像,只运行一部电影,同时获得同步和内存效率.

在此输入图像描述

我可以发布这段代码,但我怀疑它与我的问题有关,因为问题是iOS和QTKit在那里不存在.

我的问题

我想在iOS上做同样的事情,但那里不存在QTKit.也就是说,我正在寻找存在于iOS 上的content QTMovieLayer的替代品,其中属性不是nil(这是重要的部分),以便我可以在多个层之间共享内容.

此外,当我设法让视频在多个层中播放时,我希望能够指定视频的哪个部分应该在哪个层中播放(如上图所示)


我试过的

在iOS上,您可以使用AVFoundation或MediaPlayer框架来播放电影.在AVFoundation中,您AVPlayerLayer可以显示电影.(您还可以AVCaptureVideoPreviewLayer显示摄像机输入的预览和AVSynchronizedLayer同步但不显示视频).

注意: 在所有这些示例中,我成功地将视频播放到包含声音和所有内容的图层中.那不是我的问题.问题是我无法将内容与其他图层共享.

我已阅读技术说明TN2300 - 将QTKit代码转换为AV Foundation但无法找到有关在图层之间共享视频内容的任何信息.

AVPlayerLayer

如果我创建一个这样的玩家图层并尝试让contents我只nil回来

NSURL *videoURL = [[NSBundle mainBundle] URLForResource:@"video" withExtension:@"m4v"];
AVPlayer *player = [AVPlayer playerWithURL:videoURL];
[player play];
AVPlayerLayer *videoLayer = [AVPlayerLayer playerLayerWithPlayer:player];
id videoContent = videoLayer.contents // <-- this is nil :(
Run Code Online (Sandbox Code Playgroud)

AVCaptureVideoPreviewLayer

即使我真的对播放电影文件感兴趣,但我尝试使用捕获预览图层,但内容与之前一样是零

AVCaptureDevice *device = [AVCaptureDevice …
Run Code Online (Sandbox Code Playgroud)

qtkit objective-c avfoundation ios

24
推荐指数
1
解决办法
1193
查看次数

如何应用CAGradientLayer作为另一个CALayer的掩码?

我有一个视图,它有一个CALayer.当我创建一个CAGradientLayer并将其应用为该视图的CALayer的掩码时,没有任何反应.为什么?

在-initWithFrame:视图中我这样做:

CAGradientLayer *gradient = [CAGradientLayer layer];
gradient.frame = self.bounds;
gradient.colors = [NSArray arrayWithObjects:(id)[[UIColor blackColor] CGColor], (id)[[UIColor whiteColor] CGColor], nil];
//[self.layer insertSublayer:gradient atIndex:0];
self.layer.mask = gradient;
Run Code Online (Sandbox Code Playgroud)

如果我更换

self.layer.mask = gradient;
Run Code Online (Sandbox Code Playgroud)

[self.layer insertSublayer:gradient atIndex:0];
Run Code Online (Sandbox Code Playgroud)

然后我看到了渐变.它是从黑色到白色.

有什么诀窍?

core-animation calayer ios cagradientlayer

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

How do I disable NSLog?

I'd like to do the following in Xcode:

Find all NSLog commands without comments, and replace it with //NSLog...

In other words, I want to comment all NSLog calls. Is this possible? Is there an easy way to do this?

xcode objective-c

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

animateWithDuration立即完成

我知道很多人都问了同样的问题,但是所提出的解决方案似乎都不相关,所以我再问:我有以下代码块:

UIImageView *moneyHolder = [[UIImageView alloc] initWithImage:moneyImage];    
if([paymentMethod.viewed intValue] == 0){
            //CGRect targetFrame = CGRectMake(0, cell.frame.size.height/2-3, cell.frame.size.width, targetHeight);
            CGRect targetFrame = moneyHolder.frame;
            targetFrame.origin.y = cell.frame.size.height/2-3;
            NSLog(@"animating");
            [UIView animateWithDuration:2
                                  delay:0
                                options: UIViewAnimationCurveEaseOut
                             animations:^{
                                 moneyHolder.frame = targetFrame;
                             } 
                             completion:^(BOOL finished){
                                 NSLog(@"done");
                             }
            ];
        }
Run Code Online (Sandbox Code Playgroud)

我认为应该动画我的moneyHolder框架.不幸的是,这似乎是立即发生,而不是持续2秒.我可以通过日志中的时间戳验证这一点:

2012-05-11 03:41:50.102 AgilePoet [5824:15203]动画
2012-05-11 03:41:50.116 AgilePoet [5824:15203]完成

有没有人对为什么会发生这种情况有任何想法?关于这个主题的所有其他问题都集中在不可动画的属性上,但我知道一个imageview框架是有生命力的.我唯一能想到的是这段代码写在我的内部

-tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath method. 
Run Code Online (Sandbox Code Playgroud)

提前致谢!

core-animation objective-c uiview uiimageview ios

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

单击RichTextBox中的HyperLinks而不按住CTRL - WPF

我有一个WPF RichTextBox isReadOnly设置为True.我希望用户能够点击RichTextBox中包含的HyperLink,而不必按住它们Ctrl.

HyperLink上的Click事件似乎没有触发,除非Ctrl被按下,所以我不确定如何继续.

wpf click richtextbox hyperlink ctrl

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

CATiledLayer在绘制内容之前消隐拼贴

所有,

我无法从CATiledLayer获得我想要的行为.有没有一种方法可以触发瓷砖重绘而不会产生副作用,即它们的区域首先被清除为白色?我已经将CATiledLayer子类化,将fadeDuration设置为0.

更具体地说,这里是我所看到的以及我正在努力实现的细节:

  • 我有一个内容大小的UIScrollView ... ~12000x800.其内容视图是由CATiledLayer支持的UIView.
  • UIView渲染了很多自定义绘制的线条
  • 一切正常,但UIView的内容有时会改变.当发生这种情况时,我想尽可能无缝地重新绘制瓷砖.当我在视图上使用setNeedsDisplay时,瓷砖会重新绘制,但它们首先会被清除为白色,并且在绘制新内容之前会有一小段时间的延迟.我已经将CATiledLayer子类化,以便将fadeDuration设置为0.
  • 我想要的行为似乎应该是可能的......当您放大滚动视图并且内容以更高的分辨率重绘时,重绘之前没有消隐; 新内容是在旧内容之上绘制的.这就是我在寻找的东西.

谢谢; 我很感激你的想法.

更新:

只是为了跟进 - 我意识到在重绘之前瓷砖没有被清理成白色,它们被完全取出; 我看到的白色是我的CATiledLayer支持的视图下面的视图的颜色.

作为快速入侵/修复,我在UIScrollView下面放置了一个UIImageView,在触发重新绘制CATiledLayer支持的视图之前,我将其可见部分呈现到UIImageView中并让它显示出来.这显着平滑了重绘.

如果有人有更好的解决方案,比如在重新绘制之前保持重绘目标的瓷砖不会消失,我仍然喜欢听到它.

iphone core-graphics quartz-graphics catiledlayer

12
推荐指数
1
解决办法
5424
查看次数

使用块时避免保留周期的正确方法是什么

在NSMutableArray中添加对象的正确方法是什么,该对象由属性强烈定义.

[tapBlockView setTapBlock:^(UIImage* image) {
   [self.myImageArray addObject:image]; // self retain cycle
}
Run Code Online (Sandbox Code Playgroud)

如果我将创建弱引用之类的东西

__weak NSMutableArray *array = self.myImageArray;
[tapBlockView setTapBlock:^(UIImage* image) {
    [array addObject:image]; // If I will do this then how will I update original Array ?
}
Run Code Online (Sandbox Code Playgroud)

我也试过了

__weak id weakSelf = self;
[tapBlockView setTapBlock:^(UIImage* image) {
    [weakSelf storeImageInaNewMethod:image]; // Calling SToreImageInaNewMethod
}
Run Code Online (Sandbox Code Playgroud)

-(void)storeImageInaNewMethod:(UIImage*)image {
   [self.myImageArray addObject:image]; // This again retaining cycle
}
Run Code Online (Sandbox Code Playgroud)

更新属性定义的原始对象的正确方法是什么?

iphone block objective-c weak automatic-ref-counting

10
推荐指数
2
解决办法
3379
查看次数