小编Log*_*Rex的帖子

错误消息'_BSMachError:(os/kern)无效功能(20)'

请注意,此错误消息的级别相当低,因此在不同的方案中出现不同的原因.如果您的某个场景未在下面的其中一个答案中提及,请考虑添加您的情况,因此这可能是引发此错误消息的各种情况的核心答案.

编辑2015年11月10日另外请注意,我将自己的答案标记为答案,但这是在其他人发布之前.我想没有人真的应该被标记为答案,因为正如我们现在看到的那样......这个错误不仅仅有一个答案,因为它的级别太低了.

我在跑

  • iOS 9.0模拟器
  • XCode 7.0

昨天一切都很好.

今天,在旋转相关的东西上做了大量工作后,当我在模拟器中运行应用程序并旋转它时,我开始在控制台输出中收到此错误.

_BSMachError:(os/kern)无效功能(20)

_BSMachError:(os/kern)无效名称(15)

此问题的屏幕截图 - 我已经清除了我的构建文件夹, - 我已经清理了派生数据文件夹, - 我已经重置了模拟器.

我正在和我一起工作

  • UIViewController viewWillLayoutSubviews
  • UIViewController viewWillTransitionToSize:...

我还检查了IB中属性检查器的各种"绘图"设置.

我还在UIView上创建了一个实用程序类,在那里我创建了一堆创建的方法CGRect并帮助我为视图分配框架.

根视图控制器

根视图控制器设置

objective-c ios xcode7

170
推荐指数
7
解决办法
9万
查看次数

XCode的Find Navigator使用什么正则表达式引擎

关于 XCode 的 Find Navigator 使用的 RegEx 引擎,Apple、Google 搜索和 StackOverflow 的文档不存在,这使得编写表达式非常困难。例如,我尝试进行负向后查找,但它不起作用。有谁知道隐藏的文档在哪里?

regex xcode pcre icu

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

在Mac OS X上查找静态库的依赖项

我在Mac OS X 10.10.5上

我使用XCode 7.0来构建企业iOS应用程序.

此企业应用程序中的某些库是静态的,有些是动态的.

我已经能够用它otool -L来告诉我我需要什么动态库,但静态库我只是得到了构建静态库的.o文件列表,并没有告诉我什么是依赖项是.

在此输入图像描述

macos dependencies static-libraries ios

5
推荐指数
0
解决办法
1780
查看次数

lldb断点命令在XCode 8中不起作用

编辑:现在看来它并不局限于,frame info但事实上,没有任何breakpoint command add命令可以工作.只有在(lldb)命令提示符下手动输入时,它们才有效

我通过XCode控制台在LLDB中设置了一些断点,以检查一个类及其在代码中的使用方式.

(lldb) breakpoint set --func-regex "DVLayer"
Run Code Online (Sandbox Code Playgroud)

断点7:73个位置.

(lldb) breakpoint command add 7
Run Code Online (Sandbox Code Playgroud)

输入您的调试器命令.输入"DONE"结束.

 frame info

 continue

 DONE
Run Code Online (Sandbox Code Playgroud)

这在XCode的所有先前版本中都运行良好,可以追溯到XCode 4.但是,我得到的只是控制台中的这些语句,而且没有帧信息.我已经在5个不同的类上尝试了断点命令,并且它们都没有工作...总是这个输出.

命令#2'继续'继续目标.

命令#2'继续'继续目标.

命令#2'继续'继续目标.

命令#2'继续'继续目标.

命令#2'继续'继续目标.

命令#2'继续'继续目标.

命令#2'继续'继续目标.

命令#2'继续'继续目标.

命令#2'继续'继续目标.

另请注意,breakpoint command add声明仅在声明中失效

如果我只是在(lldb)命令提示符处停止在LLDB中的断点处,我可以键入frame info并按预期工作,但是,如上所述,添加frame info为断点命令完全失败并显示上面的输出.

xcode ios lldb

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

XCode不会在LLDB调用的方法中停止断点

  • XCode 7.2.1
  • iPad Retina iOS 9.2模拟器

我在XCode项目的特定类中设置了几个断点.我在下面讨论的所有内容都发生在这个类文件中.

-(int16_t)areaNbr通过点击装订线来设置断点,并且不设置条件或任何内容.我确认,就LLDB而言,它们存在breakpoint list于LLDB提示符中.

项目方案设置为构建用于调试,而不是发布.

我在模拟器中运行该项目,并以与所讨论的方法不同的方法停在断点处,此时我想转到LLDB提示并调用po [self areaNbr]并逐步执行areaNbr.

请注意,因为这可能非常相关,我在项目本身没有调用代码
-(int16_t)areaNbr

现在,-(int16_t)areaNbr如果我将一些代码添加到调用该方法的项目中,我可以在断点处停止此操作.
例如,如果我添加类似的东西NSLog(@"... %d", [self areaNbr])

我知道这个问题与编译方法无关,因为没有人调用它,因为如果这是真的,那么我的调用po [self areaNbr]就不会将结果吐出到调试器窗口,如下图所示.因此,该方法正在被编译,并且当然被调试器识别为执行目的...而不是用于步进目的.

仅供参考,[self area]正在返回"Area01"

在此输入图像描述

breakpoint list在LLDB中调用返回以下内容

在此输入图像描述

xcode objective-c ios lldb

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

动态调整popover的大小以适应其contentViewController

我有一个popover控制器我在代码中实例化并传递它的contentViewController,所有这一切都很好.当contentViewController可能因为messages标签显示任意长的字符串列表而调整大小时,问题就是LATER.

我所指的UILabel有文本......'验证和错误消息框'

我希望能够以某种方式配置布局约束,以便当用户在文本框中输入值,然后点击接受按钮时,如果我有任何验证错误呈现给他们,我可以通过添加它们到标签(我已设置为接受多行数据,如果需要),并且当添加时,如果它们恰好需要5行显示,那么标签将按下UITextField和Accept/Cancel按钮,它可以显示所有标签内容.好吧,我已经能够做到这一点,并且contentViewController按预期调整大小.问题是,包含它的弹出控制器没有调整大小,所以会发生什么,我的接受/取消按钮被推离弹出窗体的底部边缘,因此用户甚至无法访问它们.

是否有任何限制我可以设置强制弹出控制器的高度放大,以便当有多行验证文本时,我的'验证和错误消息框'下的UI控件不会被推离底边?

我在代码中创建popoverController,所以我假设我还需要在代码中执行约束.

截图

objective-c ios autolayout

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

提供UIViewController视图的多种方法

我是iOS的新手并且正在处理别人的项目,我注意到呈现视图似乎有各种不同的方式.我想知道是否有人可以简要概述各种呈现视图的方式,以及何时使用哪一种,因为它们似乎都能正常工作.

例如,我遇到过的一段代码就是这样的:

[parentView addSubview:childViewController.view];
[parentView bringSubviewToFront:childViewController.view];
Run Code Online (Sandbox Code Playgroud)

使用LLDB检查childViewController,这两个返回nil:

po self.parentViewController (这是零)

po self.presentingViewController (这是零)

在其他地方,我见过这样的事情:

[parentView addSubview:childViewController.view];
[self addChildViewController:childViewcontroller];
Run Code Online (Sandbox Code Playgroud)

更进一步,在其他地方我见过这样的事情:

UIViewController *childViewController = [[SomeChildController alloc] init];
[self presentViewController:childViewController animated:YES completion:^(void){}];
Run Code Online (Sandbox Code Playgroud)

因此,如果您愿意,有时您可以拥有父视图控制器或呈现视图控制器,有时则不需要它.有这么多的选择来呈现观点,你如何决定一个在另一个,或者哪个是正确的?

objective-c uiviewcontroller uiview ios

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

通过 performSelector 传递 CGSize

我有一个方法可以像这样返回一个 CGSize ......

-(CGSize)theSizeToUse
Run Code Online (Sandbox Code Playgroud)

然后在其他地方我有代码询问该类是否响应此选择器,如果是,请使用执行选择器调用它...

if ([myClass respondsToSelector:@selector(theSizeToUse)])    CGSize
   theSize = [myClass performSelector:@selector:(theSizeToUse)];
Run Code Online (Sandbox Code Playgroud)

好吧,这是行不通的,因为 performSelector 将返回一个 id,而不是一个 CGSize,所以我考虑将它包装在一个 NSValue 中并返回一个 NSValue,然后我会解开它。

查看 NSValue 的文档,很清楚要做什么……只需调用NSValue valueWithSize打包和解包NSValue sizeValue即可。一切顺利,直到我到达 sizeValue... 没有这样的属性或方法。

我正在为 iOS 开发,在装有 OS X 10.10 的 MacBook 上针对 iOS 7

知道如何让这个工作吗?

objective-c ios

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

当变量已经定义类型时,为什么需要进行类型转换?

我有一个自定义的UIViewController,我用它作为popover的内容视图控制器.这个自定义UIViewController定义如下...

@interface MyCustomViewController : UIViewController <MyCustomDelegate>
Run Code Online (Sandbox Code Playgroud)

然后我在另一个类中有一个方法,我引用popover的contentViewController就像这样...

-(void)someMethod:(UIPopoverController *)popoverController

    UIViewController<MuCustomDelegate> *theCustomViewController;
Run Code Online (Sandbox Code Playgroud)

因为我已经定义了什么theCustomViewController,为什么我必须在下一行之后做到这一点...

theCustomViewController = (UIViewController<MyCustomDelegate>*)myUIPopOverController.contentViewController;
Run Code Online (Sandbox Code Playgroud)

为什么编译器/ XCode编辑器或者其他任何东西都不知道代理是什么而不是让我在我已经定义它之后对其进行转换

谢谢

casting objective-c

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