小编Jav*_*oto的帖子

"应用程序试图以模态方式呈现一个活动控制器"?

我刚刚遇到一个崩溃NSInvalidArgumentException,在一个以前没有这样做的应用程序上显示此消息.

应用程序尝试以模态方式呈现活动控制器UITabBarController:0x83d7f00.

我有一个UITabBarController我在其中创建AppDelegate并给它的数组UIViewControllers.

其中一个我想在点击它时以模态方式呈现.我通过实现委托方法来做到这一点

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController
Run Code Online (Sandbox Code Playgroud)

如果该视图控制器属于我想以模态方式呈现的类,我返回NO并执行

[tabBarController presentModalViewController:viewController animated:YES];
Run Code Online (Sandbox Code Playgroud)

现在我收到了这个错误,这似乎意味着你不能在模式上呈现一个在其他地方活动的视图控制器(在tabbar中......)我应该说我在XCode 4.2 Developer Preview 7上,所以这是iOS 5(我知道NDA,但我认为我没有提供任何禁止的细节).我目前没有XCode安装来测试这是否会崩溃编译iOS4 SDK,但我几乎完全确定它没有.

我只想询问是否有人遇到过此问题或有任何建议

objective-c ios ios5

94
推荐指数
4
解决办法
10万
查看次数

如果你不能提交他们的分支,如何将提交添加到另一个人的github pull请求到你的回购?

这是场景:

我有一个公共的回购一个.Bob forks A,添加了一些提交Bob/master并提交了一个pull请求来合并这些更改A/master.我想在合并之前对提议的pull请求进行一些更改A/master.

如果我不能推动,我怎么能这样做Bob/master

git github pull-request

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

iOS 7如何实现UI元素,使它们看起来不同,具体取决于您编译的SDK?

在iOS 7上有像UITableViews,UINavigationBars这样的元素具有不同的风格.

这种风格在运行时确定,因为这几类实现上UIKit,并UIKit与您在运行时动态,而不是在编译时静态链接的应用.

因此,人们可能会认为在iOS 7的任何应用程序的运行将有那些元素,看起来他们希望在iOS 7的方式.然而,他们继续他们曾经有过在iOS 6,直到你跟iOS 7 SDK编译相同的风格.除了其中一些(如UIAlertViewUIMenuController)

我对此的唯一解释是他们做了类似这样的事情:

#define SDKApplicationWasLinkedAgainst ...
if (SDKApplicationWasLinkedAgainst < 7.0)
    ...
else
    ...
Run Code Online (Sandbox Code Playgroud)

这显然非常麻烦,因为他们需要继续维护很多旧代码.所以我很好奇,这真的是引擎盖下的事情吗?我错过了什么?

iphone ios ios7

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

将OAuth请求代理到Twitter API

我一直在使用Twitter测试应用程序的twitter API,我错过了用Charles(http://www.charlesproxy.com/)这样的软件代理我对twitter API的请求的能力.即使它具有SSL代理功能,Twitter似乎也不喜欢在签署请求的中间有不同的证书.有没有办法做到这一点?能够看到请求和Charles格式化JSON响应的方式等,我会非常有用......

twitter proxy oauth twitter-oauth

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

如何在后期作业脚本中使用JUnit XML格式在Jenkins中运行测试的数量?

有没有办法在Post Job脚本中获取Jenkins中执行(或传递)的测试数量(例如,将此数字发送到Github Status API)?

continuous-integration jenkins jenkins-plugins

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

在GCD串行队列上安排和使NSTimers无效是否安全?

这样做的正确方法是什么?该NSTimer文件说,这样的:

特别注意事项

您必须从安装了计时器的线程发送此消息.如果从另一个线程发送此消息,则可能无法从其运行循环中删除与计时器关联的输入源,这可能会阻止线程正常退出.

既然GCD不能保证串行队列总是在同一个线程上运行块,那么确保NSTimer在同一个线程上调度和失效的正确方法是什么?

编辑:

根据以下答案的建议,我创建了MSWeakTimer(https://github.com/mindsnacks/MSWeakTimer),这是一个使用的自定义计时器实现GCD,可以在任何队列中使用.

objective-c core-foundation nstimer grand-central-dispatch ios

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

otest崩溃 - [id <NSURLAuthenticationChallengeSender> userCredential:]

我们有一个使用AFHTTPClientAFHTTPRequestOperation内部的类.在开发中,我们连接到具有无效SSL证书的服务器,因此我们在返回请求操作的方法中使用此代码:

if (self.allowInvalidSSLCertificates)
    {
        [operation setAuthenticationChallengeBlock:^(NSURLConnection *connection, NSURLAuthenticationChallenge *challenge) {
            if ([challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust]) {
                [challenge.sender useCredential:[NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust] forAuthenticationChallenge:challenge];
            }
        }];

        [operation setAuthenticationAgainstProtectionSpaceBlock:^BOOL(NSURLConnection *connection, NSURLProtectionSpace *protectionSpace) {
            return YES;
        }];
    }
Run Code Online (Sandbox Code Playgroud)

这与定义有效_AFNETWORKING_ALLOW_INVALID_SSL_CERTIFICATES_,但我们需要在运行时执行此操作.这在Xcode上完美运行,忽略了无效证书,并且我们所有的功能测试都通过了.当我们使用命令行运行它们时会出现问题xcodebuild.一旦它将运行第一次测试,它就会崩溃:

Run test case <testMethodName> Test Case '-[<TestCaseClass> <testMethodName>]' started. /Applications/Xcode.app/Contents/Developer/Tools/RunPlatformUnitTests.include: line 415: 47744 Bus error: 10 "${THIN_TEST_RIG}" "${OTHER_TEST_FLAGS}" "${TEST_BUNDLE_PATH}" /Applications/Xcode.app/Contents/Developer/Tools/RunPlatformUnitTests.include:451: error: Test rig '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.1.sdk/Developer/usr/bin/otest' exited abnormally with code 138 (it may have crashed).

如果我们删除该代码,并且不忽略SSL证书无效,则测试不会通过,因为连接失败,但没有任何崩溃.

这是Console中的崩溃日志:

Process:         otest [35957]
Path:            /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.1.sdk/Developer/usr/bin/otest
Identifier: …
Run Code Online (Sandbox Code Playgroud)

cocoa-touch xcodebuild ios xcode4 afnetworking

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