相关疑难解决方法(0)

performSelector可能导致泄漏,因为其选择器未知

ARC编译器收到以下警告:

"performSelector may cause a leak because its selector is unknown".
Run Code Online (Sandbox Code Playgroud)

这是我正在做的事情:

[_controller performSelector:NSSelectorFromString(@"someMethod")];
Run Code Online (Sandbox Code Playgroud)

为什么我会收到此警告?我理解编译器无法检查选择器是否存在,但为什么会导致泄漏?我怎样才能更改我的代码,以便我不再收到此警告?

memory-leaks objective-c ios automatic-ref-counting

1251
推荐指数
15
解决办法
18万
查看次数

在iOS8中使用UISplitViewController隐藏主视图控制器

我有一个iOS7应用程序,它基于Xcode主 - 详细信息模板,我移植到iOS8.一个变化很大的领域是UISplitViewController.

在纵向模式下,如果用户点击详细视图控制器,则主视图控制器将被关闭:

在此输入图像描述

如果用户点击一行,我还希望能够以编程方式隐藏主视图控制器.

在iOS 7中,主视图控制器显示为弹出窗口,可以隐藏如下:

[self.masterPopoverController dismissPopoverAnimated:YES];
Run Code Online (Sandbox Code Playgroud)

使用iOS 8,主服务器不再是popover,因此上述技术不起作用.

我试图解雇主视图控制器:

self.dismissViewControllerAnimated(true, completion: nil)
Run Code Online (Sandbox Code Playgroud)

或者告诉拆分视图控制器显示详细信息视图控制器:

self.splitViewController?.showDetailViewController(bookViewController!, sender: self)
Run Code Online (Sandbox Code Playgroud)

但到目前为止还没有任何工作.有任何想法吗?

objective-c uisplitviewcontroller swift ios8

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

如何以编程方式触发uibarbuttonitem的动作?

可能重复:
如何以编程方式触发uibarbuttonitem单击事件

我已经uibarbuttonitem动态创建了它并且它正常工作.我想以uibarbutton编程方式触发该项操作(单击)以进行单元测试.

即使代码在应用程序代码(而不是测试代码)中记录条形按钮项的操作时工作正常,它也会给出null.我使用的代码如下.

NSLog(@"%@",NSStringFromSelector(barButton.action)); 
Run Code Online (Sandbox Code Playgroud)

在测试代​​码中,我创建了一个名为logout的bar按钮,并为其指定了barbutton.以编程方式单击bar按钮项我遵循以下代码.

[logout.target performSelector:logout.action];
Run Code Online (Sandbox Code Playgroud)

但它没有用.我记录了注销按钮的操作,它也给出了null.

NSLog(@"%@",logout.action);
Run Code Online (Sandbox Code Playgroud)

我想知道如何以编程方式单击uibarbuttonitem动态创建的内容.

action uibarbuttonitem ios

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