小编Mar*_*eid的帖子

@property在Objective-C中保留,赋值,复制,非原子

作为Objective-C的新手,有人可以按照@property指令给我一个概述保留,分配,复制和我缺少的任何其他内容吗?他们在做什么,为什么我要用另一个?

iphone memory-management objective-c ios

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

使用UITableView的动态UITextView中的光标不再适用于iOS 11

我在一个人类型中创建了一个UITextView动态调整大小UITableViewCell.

在iOS 10上,UITextView自动跟踪光标,只需要很少的代码.

UITextViewDelegate方法中textViewDidChange:我使用了这个代码,它更新了文本视图的大小,没有任何跳转.

func textViewDidChange(_ textView: UITextView) {
    UIView.setAnimationsEnabled(false)
    self.tableView.beginUpdates()
    self.tableView.endUpdates()
    UIView.setAnimationsEnabled(true)
    self.tableView.contentOffset = currentOffset
}
Run Code Online (Sandbox Code Playgroud)

在iOS 11中,这不再有效,当我键入时,光标在键盘下消失.请注意,键盘出现时我不需要任何更改.

我知道iOS 11中的内容与内容插件的工作方式有关,但无法弄清楚我需要做些什么改变才能使其工作.

我应该在哪里进行这些修改来修复它?

- 更新 -

事实证明,删除所有代码解决了我在iOS 11和iOS 11中的问题处理向下滚动以跟随光标,因为我自动键入没有任何问题.

我剩下的一个问题是,在停止更新UITextViews大小之前,我只能在UITextView中输入多达28行文本.

uitableview uitextview ios autolayout swift

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

CGAffineTransformIdentity在多次转换后没有重置UIImageView?

我在顶部创建了一个带有分段控件的简单应用程序.当我单击控件的两个部分之一时,UIImageView开始旋转.我有一个重置按钮,将其变换设置为CGAffineTransformIdentity.

通过来回切换段来第二次调用执行视图旋转动画的方法时,会发生此问题.点击重置只会删除最新的动画.我必须第二次切换片段以完全重置动画停止.

当我选择旋转UIImageView的段时调用以下代码,当我在段之间单击时显然第二次调用.

// Begin the animation block and set its name
[UIView beginAnimations:@"Rotate Animation" context:nil];

// Set the duration of the animation in seconds (floating point value)
[UIView setAnimationDuration:0.5];

// Set the number of times the animation will repeat (NSIntegerMax setting would repeat indefinately) (floating point value)
[UIView setAnimationRepeatCount:NSIntegerMax];

// Set the animation to auto-reverse (complete the animation in one direction and then do it backwards)
[UIView setAnimationRepeatAutoreverses:YES];

// Animation curve dictates the speed over time of an animation …
Run Code Online (Sandbox Code Playgroud)

core-graphics objective-c cgaffinetransform ios

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

在SKVideoNode中播放视频会在播放开始前产生黑色闪光

我正在使用Sprite Kit和SKVideoNode来播放短视频.当视频节点被添加到场景中时,在初始设置之前,播放器闪烁黑色一小段时间.

我已经尝试过直接使用AVPlayer代替视频,而且我还使用KVO只在视频显示已准备好播放时才加载SKVideoNode.

无论哪种方式,我的视频开始播放前都会出现黑色闪光.

似乎没有办法将AVPlayerLayer添加到SKScene/SKView,虽然我不知道这是否有帮助.

关于接下来要尝试什么的任何建议都会很棒.

这是我正在使用的代码

- (void)didMoveToView:(SKView *)view
{
    if (!self.contentCreated) {
        [self createSceneContents];
    }
}

- (void)createSceneContents
{
    NSString *resourcePath = [[NSBundle mainBundle] pathForResource:@"IntroMovie" ofType:@"mov"];
    NSURL *introVideoURL = [NSURL fileURLWithPath:resourcePath];
    self.playerItem = [AVPlayerItem playerItemWithURL:introVideoURL];
    self.player = [[AVPlayer alloc] initWithPlayerItem:self.playerItem];

    [self.playerItem addObserver:self forKeyPath:@"status" options:NSKeyValueObservingOptionNew context:nil];

    SKSpriteNode *playButton = [SKSpriteNode spriteNodeWithImageNamed:@"PlayButton"];
    [playButton setPosition:CGPointMake(CGRectGetMidX(self.view.frame), (CGRectGetMidY(self.view.frame) / 5) * 3)];
    [self addChild:playButton];
}

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
    if ([keyPath isEqualToString:@"status"]) {
        if ([[change objectForKey:NSKeyValueChangeNewKey] integerValue] == …
Run Code Online (Sandbox Code Playgroud)

avplayer sprite-kit skvideonode

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

在Swift代码中未调用CLLocationManagerDelegate方法

我正在尝试创建一个简单的应用程序,以找出某人所在的区域,但是由于应用程序运行并找到位置时,不会调用任何CLLocationManagerDelegate方法,所以我陷入了困境。

如果相关,我也不会看到对话框,询问我是否允许该应用使用位置信息。

这是我到目前为止的内容-

import UIKit
import CoreLocation

class ViewController: UIViewController, CLLocationManagerDelegate {

@IBOutlet weak var locationLabel : UILabel!

var locationManager = CLLocationManager()
let geocoder = CLGeocoder ()

override func viewDidLoad() {
  super.viewDidLoad()
  // Do any additional setup after loading the view, typically from a nib.

  locationManager.delegate = self
  locationManager.desiredAccuracy = kCLLocationAccuracyBest
  locationManager.startUpdatingLocation()
}

override func viewDidDisappear(animated: Bool) {
  locationManager.stopUpdatingLocation()
}

override func didReceiveMemoryWarning() {
  super.didReceiveMemoryWarning()
  // Dispose of any resources that can be recreated.
}

func locationManager(manager: CLLocationManager!, didUpdateLocations locations: …
Run Code Online (Sandbox Code Playgroud)

core-location cllocationmanager ios swift

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

如果要求在iPhone应用程序中遵守LGPL,我需要分发哪些文件?

我正在使用一个使用ZPL库的iPhone应用程序,该库是LGPL许可证.我想知道的是,如果他们为我的iPhone应用程序请求此许可证下的代码副本,我需要给予他人什么?

我被告知他们在build文件夹中,并且他们是.o文件.我在armv6和armv7文件夹中找到了一些与一个LinkFileList以及看起来像我的应用程序名称的终端应用程序.我只在我的一个源文件中直接使用该库,这是我的一个UIViewControllers.

有人可以告诉我,我是否需要将所有这些文件或特定文件发送给他们?我也被称为日志中的链接命令,但不知道它在哪里.

谢谢.

iphone cocoa cocoa-touch lgpl

4
推荐指数
1
解决办法
404
查看次数

我可以更改NSDictionaries密钥吗?

我有一个NSDictionary对象,由NSMutableStrings填充其键和对象.我已经能够通过使用setString:方法更改原始NSMutableString来更改密钥.然而,无论最初用于设置密钥的字符串的内容如何,​​它们的密钥都保持不变.

我的问题是,密钥是否受到保护而不被更改意味着除非我将其删除并将另一个添加到字典中,否则它将始终相同?

谢谢.

cocoa dictionary objective-c foundation

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

使用Retina运行动作/仅在iPad Air和iPad mini上加载资源时,Sprite Kit会崩溃

我收到来自视网膜迷你和iPad Air设备的崩溃报告,但不是iPhone 5S.它出现在SpriteKit中,当有人点击一个精灵,然后该精灵应该再次出现在屏幕上.

我无法在非A7设备上重现这一点,所以想知道是否有人可以查看下面的崩溃日志,让我知道崩溃可能是由什么引起的?

Exception Type:  SIGSEGV
Exception Codes: SEGV_ACCERR at 0xb000000c
Crashed Thread:  0

Thread 0 Crashed:
0   libobjc.A.dylib                      0x39b30b66 objc_msgSend + 5
1   CoreUI                               0x3349bd0d -[CUIStructuredThemeStore renditionWithKey:] + 1050
2   CoreUI                               0x334a50af -[CUINamedImage _renditionForSpecificKey:] + 168
3   CoreUI                               0x334a50fd -[CUINamedImage image] + 18
4   UIKit                                0x31b2ec01 -[_UIAssetManager imageNamed:scale:idiom:subtype:cachingOptions:] + 260
5   UIKit                                0x31b2eaf7 -[_UIAssetManager imageNamed:scale:idiom:subtype:] + 38
6   UIKit                                0x31b2eacd -[_UIAssetManager imageNamed:idiom:subtype:] + 44
7   UIKit                                0x31b2ea9b -[_UIAssetManager imageNamed:idiom:] + 46
8   UIKit                                0x31b75c45 +[UIImage imageNamed:inBundle:] + 56 …
Run Code Online (Sandbox Code Playgroud)

air 64-bit ipad ios sprite-kit

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

当我在Objective-C中引用编程时,我应该包含2.0吗?

这可能是主观的,但是,如果我在Objective-C 2.0中编写一些代码并且我在Twitter上或在博客中写它,那么我应该将它称为Objective-C 2.0还是仅仅是Objective -C?

objective-c

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

MPMoviePlayerController不播放视频

我正在使用此代码尝试播放视频.然而,视频从未播放过,回调永远不会说它已经完成.我看不到任何我错过的东西或者它不应该在哪里.我检查了路径,那没关系.视频播放视图确实出现.它只是不起作用.

有什么建议?

NSURL *movieURL = [[NSBundle mainBundle] URLForResource:@"IntroMovie" withExtension:@"mov"];

NSLog(@"%@", movieURL);

MPMoviePlayerController *moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:movieURL];

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playbackFinished:) name:MPMoviePlayerPlaybackDidFinishNotification object:moviePlayerController];

[moviePlayerController prepareToPlay];

[moviePlayerController.view setFrame:self.view.bounds];
[self.view addSubview:moviePlayerController.view];

[moviePlayerController play];
Run Code Online (Sandbox Code Playgroud)

mpmovieplayercontroller mpmovieplayer ios

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