草庐IT

lldb_private

全部标签

objective-c - 为什么 LLDB 不能打印 view.bounds?

调试时这样的事情让我发疯:(lldb)pself.boundserror:unsupportedexpressionwithunknowntypeerror:unsupportedexpressionwithunknowntypeerror:2errorsparsingexpression(lldb)p(CGRect)self.boundserror:unsupportedexpressionwithunknowntypeerror:unsupportedexpressionwithunknowntypeerror:C-stylecastfrom''to'CGRect'isnotall

公开只读但具有私有(private) setter 的 Objective-C 属性

我想使用@property语法来声明一个综合属性,该属性是公开只读的,但有一个可以在类中私下调用的setter。由于是Objective-C,这基本上意味着setFoo:方法将被合成,但在类本身之外调用它会导致警告(无法识别的选择器)。要触发警告,我必须声明属性readonly;有没有办法强制只在类中可用的合成setter? 最佳答案 我认为您正在寻找的是所谓的类扩展。您可以在header中将属性声明为只读:@interfaceMyClass:NSObject{}@property(readonly,assign)NSInteger

objective-c - Xcode中私有(private)方法的单元测试

我正在一个玩具项目中尝试测试驱动开发。我可以让测试为我的类的公共(public)接口(interface)工作(尽管我仍然在围栏上,因为我编写的测试代码比正在测试的方法中的要多)。我倾向于使用很多私有(private)方法,因为我喜欢保持公共(public)接口(interface)干净;但是,我仍然想对这些方法进行测试。由于Cocoa是一种动态语言,我仍然可以调用这些私有(private)方法,但我在测试中收到警告说我的类可能不会响应这些方法(尽管它显然会响应)。因为我喜欢在没有警告的情况下编译,所以我的问题是:如何在Xcode中关闭这些警告?我还能做些什么来关闭这些警告吗?我在尝试

objective-c - Objective C 中的私有(private)属性

有没有办法在ObjectiveC中声明私有(private)属性?目标是从合成的getter和setter中受益,实现特定的内存管理方案,但不向公众公开。尝试在类别中声明属性会导致错误:@interfaceMyClass:NSObject{NSArray*_someArray;}...@end@interfaceMyClass(private)@property(nonatomic,retain)NSArray*someArray;@end@implementationMyClass(private)@synthesizesomeArray=_someArray;//^^^errorh

objective-c - Xcode/LLDB : How to get information about an exception that was just thrown?

好的,想象一下我在objc_exception_throw中的断点刚刚触发。我正坐在调试器提示符旁,我想获得有关异常对象的更多信息。我在哪里可以找到它? 最佳答案 异常对象作为objc_exception_throw的第一个参数传入。LLDB提供$arg1..$argn变量来引用正确调用约定中的参数,从而可以轻松打印异常详细信息:(lldb)po$arg1(lldb)po[$arg1name](lldb)po[$arg1reason]确保在执行这些命令之前选择调用堆栈中的objc_exception_throw帧。请参阅WWDC15

iphone - Apple 怎么知道你在使用私有(private) API?

我向Apple提交了一个没有任何源代码的二进制文件。除了手动检查源代码之外,Apple如何知道您使用了什么以及您调用了哪些API? 最佳答案 我知道有3种方法。这些只是一些猜测,因为我不在Apple审核团队工作。1。otool-L这将列出该应用已链接到的所有库。显然你不应该使用的东西,比如IOKit和WebKit可以被它检测到。2。nm-u这将列出所有链接的符号。这可以检测到未记录的C函数,例如_UIImageWithName;UIProgressHUD等Objective-C类UITouch._phase等Ivar(这可能是导致r

objective-c - 为什么 Objective-C 不支持私有(private)方法?

我在Objective-C中看到了许多声明半私有(private)方法的策略,但似乎没有办法制作真正私有(private)的方法。我接受。但是,为什么会这样?我基本上说的每一个解释都是:“你做不到,但这是一个非常接近的近似值。”有许多关键字应用于控制其范围的ivars(成员),例如@private、@public、@protected。为什么方法也不能这样做?看起来运行时应该能够支持的东西。有没有我缺少的基本哲学?这是故意的吗? 最佳答案 答案是……嗯……很简单。事实上,简单性和一致性。Objective-C在方法分派(dispat

python - 是否可以使用 pip 从私有(private) GitHub 存储库安装包?

我正在尝试从私有(private)GitHub存储库安装Python包。对于公共(public)存储库,我可以发出以下运行良好的命令:pipinstallgit+git://github.com/django/django.git但是,如果我尝试将其用于私有(private)存储库:pipinstallgit+git://github.com/echweb/echweb-utils.git我得到以下输出:Downloading/unpackinggit+git://github.com/echweb/echweb-utils.gitCloningGitrepositorygit://g

python - Python 类中有 “private” 变量吗?

我来自Java世界,正在阅读BruceEckels的Python3模式、食谱和习语。在阅读类时,它继续说在Python中不需要声明实例变量。您只需在构造函数中使用它们,然后繁荣,它们就在那里。例如:classSimple:def__init__(self,s):print("insidethesimpleconstructor")self.s=sdefshow(self):print(self.s)defshowMsg(self,msg):print(msg+':',self.show())如果是这样,那么类Simple的任何对象都可以在类之外更改变量s的值。例如:if__name__

c++ - 为什么显式类型转换允许向上转换为私有(private)继承?

#includeusingnamespacestd;classA{public:voidf(){cout由于B类私下继承A类,因此这种向上转换不应该起作用:A*a=newB;但是显式类型转换是允许的。为什么?A*a1=(A*)newB;a1->f();return0;} 最佳答案 类型转换A*a1=(A*)newB;是对不可访问的基类的强制转换。它只能表示为C风格的类型转换。如果在这种情况下可以使用static_cast,则它等效于static_cast的作用,而不等效于reinterpret_cast。特别是结果地址不一定与参数地