小编Dan*_*son的帖子

更新Xcode 8.1中的帧按钮

更新到8.1(8B62)后,在Interface Builder右下角的Resolve Auto Layout Issues快捷方式中,不再有用于更新storyboard/xib中的帧的按钮.我听说过在新的和花哨的触控条上放置这样一个按钮,但这对于像我这样的凡人来说意味着什么呢?我必须开始使用菜单栏吗?

现在: 在此输入图像描述

之前:

在此输入图像描述

xcode xcode8

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

从应用程序中删除iPad支持

我不久前将应用程序上传到App Store,但由于各种原因我必须删除iPad支持.我不是在谈论从iPad App Store中删除应用程序,只是删除iPad支持.该开发人员网站声明如下:

希望发布更新但删除设备支持的开发人员有三种选择:

  • 修复他们的应用程序,以便它可以在他们最初设置支持的设备上工作.
  • 定位需要较新设备的较新版本的iOS.
  • 从商店中删除他们的应用程序,并使用不同的包ID上传新应用程序.

问题是,如果我从应用商店中删除应用并再次上传,我就无法使用相同的应用名称.这不是一种选择.

有没有办法解决这个烂摊子?

itunesconnect app-store ipad ios

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

iOS应用程序受到本地搜索的限制

我正在一个搜索地址的应用程序中实现自动完成(每个新角色添加一个搜索),我不断获取MKErrorDomain error 3,这是MKErrorLoadingThrottled.根据Apple dev的说法,这个错误发生在

未加载数据,因为数据限制有效.如果应用程序在短时间内频繁请求数据,则会发生此错误.

我确切地知道有多少请求正在进行,一个用于搜索查询中的每个新charachter(就像您希望自动完成工作一样).当然,我是一个快速的人,但只有10或15个请求后能够达到极限似乎是荒谬的.看看以下两个源代码引用,我不明白为什么我一直受到限制.

根据Apple开发:

每个应用程序或开发人员ID没有请求限制,因此编写良好的正确应用程序应该不会遇到任何问题.但是,在创建大量请求的应用程序写得不好的情况下,可能会出现限制.

正如詹姆斯霍华德在WWDC上所说:

我想谈的另一件事就是这个API的使用限制.因此,我很高兴地宣布,没有应用程序或开发人员标识符的广泛使用限制.所以,如果你的应用程序拥有大量用户并且你想要做很多请求,那就没问题了.

它会工作的.

我们所拥有的限制实际上只是防范错误应用程序的第一道防线.因此,如果您将路线请求或本地搜索请求置于无限循环中,您就会遇到错误,最终您将受到限制.

但是,如果你做了一些合理的事情,你会说哦,我只会做一些回应用户输入的指示,你知道你可以做一些,因为我们向他们展示了这个例子.

就像我们针对一个用户输入做了两个方向请求一样,这很好.但是,你知道如果你每次用户点击屏幕时你都做了10,000,那么你就会受到限制.但是,只要保持合理,你就没事了.

任何想法为什么会发生这种情况?

mapkit ios mklocalsearch

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

何时使用UIView动画,CABasicAnimation和UIViewPropertyAnimator?

我想知道在哪些情况下我们应该使用它们中的任何一种作为最合适的?

在下面的博客https://www.hackingwithswift.com/ios10中,在"动画重新访问"部分中写的示例,我们可以使用"CABasicAnimation"重新应用相同的要求,这意味着暂停和恢复动画吗?

根据我收集的内容,当我们使用UIView.animate(...)方法时,它返回一个void,因此我们将无法在完成之前控制动画,因为我们没有获得返回值来处理当我们进入UIViewPropertyAnimator时(此外,我们还有"isRunning"来检查动画的进度.)同样在CABasicAnimation中,我们没有任何进度检查来运行动画.如果我的假设是错误的,请纠正我.谢谢.

core-animation cabasicanimation swift ios10 uiviewpropertyanimator

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

MapKit中的自定义地图样式

我正在寻找一种在iOS 7中实现自定义地图样式的方法,就像使用Google地图一样.我发现一些帖子说这对MapKit来说是不可能的,但是它们都被发布了一段时间.为了澄清,按照风格我说的是自定义颜色,最好也是字体.下面是自定义Google地图样式的示例.

http://www.servendesign.com/wp-content/uploads/2011/12/zaarley-custom-google-maps.jpg

出于性能原因,我更喜欢使用MapKit,但如果不支持我,我也愿意使用其他框架.我见过的是MapBox和Cloudmade,当然还有Google Maps SDK.

有没有办法用MapKit做到这一点?如果没有,最好的方法是什么?

google-maps mapkit cloudmade ios mapbox

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

MapKit中沿路径的注释

我正在使用MapKit来显示位置之间的方向,我正在寻找一种方法来添加一个与Apple Maps应用程序中的路径注释类似的注释,其中注释显示每条路线的旅行时间(如图所示)下面).我已经正确地绘制了方向,手头的问题是如何计算沿路线的一对坐标.也就是说,在哪里删除注释.

我想过以某种方式使用MKDirection(包含完整的方向,一步一步),但我不确定如何生成一对位于路线中间某处的坐标.

我在MapKit文档中找不到任何形式的支持.有任何想法吗?

在此输入图像描述

这是我生成路线并显示它的方式.

- (void)generateRoute {
    MKDirectionsRequest *request = [[MKDirectionsRequest alloc] init];
    request.source = [MKMapItem mapItemForCurrentLocation];
    request.destination = self.destinationMapItem;
    MKDirections *directions = [[MKDirections alloc] initWithRequest:request];

    [directions calculateDirectionsWithCompletionHandler:
     ^(MKDirectionsResponse *response, NSError *error) {
         if (error) {
             // Handle Error
         } else {
             [self showRoute:response];
         }
     }];
}

- (void)showRoute:(MKDirectionsResponse *)response {
    [self.mapView removeOverlays:self.mapView.overlays];
    for (MKRoute *route in response.routes)
    {
        [self.mapView addOverlay:route.polyline level:MKOverlayLevelAboveRoads];
    }
    [self fitRegionToRoute];
}

- (MKOverlayRenderer *)mapView:(MKMapView *)mapView rendererForOverlay:(id < MKOverlay >)overlay
{
    MKPolylineRenderer *renderer …
Run Code Online (Sandbox Code Playgroud)

iphone mapkit mkmapview ios ios7

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

ABA在无锁算法中

我理解ABA问题.但我无法理解的是:他们说在有自动垃圾收集的语言中它可能无法展示.所以我的问题是:

  • 自动垃圾收集如何防止ABA问题的发生?
  • 是否有可能在java中,如果可以,如何?
  • 有可能防止这种情况发生吗?

java concurrency lock-free

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

Centos 6.4 - 无法映射来自共享对象的段:权限被拒绝

嗨,我正在尝试安装Phusion Passenger.安装成功但我在做的时遇到以下错误service httpd start

Starting httpd: httpd: Syntax error on line 221 of /etc/httpd/conf/httpd.conf: Syntax error on line 1 of /etc/httpd/conf.d/passenger.conf: Cannot load /usr/local/rvm/gems/ruby-2.0.0-p353/gems/passenger-4.0.33/buildout/apache2/mod_passenger.so into server: /usr/local/rvm/gems/ruby-2.0.0-p353/gems/passenger-4.0.33/buildout/apache2/mod_passenger.so: failed to map segment from shared object: Permission denied [FAILED]

centos passenger

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

参数化单元测试套件

我试图建立一些参数化的测试套件,遗憾的是到目前为止没有任何运气.我有两组参数,我想用所有可能的组合运行多个测试用例(它们在不同的类中).我尝试使用JUnit4,但我无法正确设置它.这将是我的基本想法:

  1. TestSuite1.class设置一组参数,然后启动TestSuite2.class.
  2. TestSuite2.class 设置第二组参数,然后启动将使用这两个参数的实际测试.

同时现在看来,这是不可能的设置都Suite.classParameterized.classRunWith同一时间注释(据谷歌,Parameterized延伸Suite,我通常会"没有可运行的方法找到了"如果我用的消息.)

这就是我的代码基本上是这样的:

TestSuite1.class:

@RunWith(Parameterized.class)
@Parameterized.SuiteClasses({TestSuite2.class})
//I have tried with @RunWith(Suite.class) and
//@Suite.SuiteClasses({TestSuite2.class}) annotations also - all combinations
public class TestSuite1{

  public TestSuite1(int number) {
    Params.first = number;
  } 

  @Parameters
  public static Collection<Object[]> parameters(){
    Object[][] data = new Object[][] { { 1 }, { 2 }, { 3 }, { 4 } };
    return Arrays.asList(data);
  }
}
Run Code Online (Sandbox Code Playgroud)

TestSuite2.class看起来一样TestSuite1.class,除了我已经添加TestCase1.class到套件而不是TestSuite2 …

java junit testng test-suite

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

在录制应用程序中执行振动

我试图在类似于Snapchat的应用程序中执行振动,它既使用音频输出又使用输入,并支持来自其他应用程序的音频混合,但这似乎是我最初认为的更难的任务.重要的是要知道我不是在播放或录制过程中试图振动.通过阅读我在这个主题上可以找到的所有文档,这就是我所了解的:

  • 为了支持播放和录制(输出和输入),我需要使用 AVAudioSessionCategoryPlayAndRecord
  • AudioServicesPlaySystemSound (kSystemSoundID_Vibrate)任何录制类别都不支持使手机振动,包括AVAudioSessionCategoryPlayAndRecord.
  • 可以通过添加选项来启用其他应用程序来播放音频AVAudioSessionCategoryOptionMixWithOthers.

因此,我在我的app委托中执行此操作:

NSError *error = nil;
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord withOptions:AVAudioSessionCategoryOptionDefaultToSpeaker | AVAudioSessionCategoryOptionMixWithOthers error:&error];
Run Code Online (Sandbox Code Playgroud)

我尝试但失败的振动的可能解决方案是:

  • AVAudioSession在振动之前停用共享,然后直接激活它.

    [[AVAudioSession sharedInstance] setActive:NO error:nil];         
    AudioServicesPlaySystemSound (kSystemSoundID_Vibrate);
    [[AVAudioSession sharedInstance] setActive:YES error:nil];
    
    Run Code Online (Sandbox Code Playgroud)

    这成功地执行了振动,但之后,当我尝试录制电影时,音频被淹没(或其他东西导致它非常沉默).它还给我一个错误,说我不允许在不先删除其I/O设备的情况下停用会话.

  • 在振动之前更改类别,然后将其更改回来.

    [[AVAudioSession sharedInstance] setActive:NO error:nil];
    [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:nil];
    [[AVAudioSession sharedInstance] setActive:YES error:nil];
    
    AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
    
    [[AVAudioSession sharedInstance] setActive:NO error:nil];
    [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord withOptions:AVAudioSessionCategoryOptionDefaultToSpeaker | AVAudioSessionCategoryOptionMixWithOthers error:nil];
    [[AVAudioSession sharedInstance] setActive:YES error:nil];
    
    Run Code Online (Sandbox Code Playgroud)

    这个解决方案时不时出现,但似乎对我不起作用.即使类别似乎已设定,也不会发生振动.如果我设置usesApplicationAudioSession = YES了AVCaptureSession,这可能仍然是一个有效的解决方案,但我还没有使它工作.

资料来源:

avfoundation iphone-vibrate ios avaudiosession

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