草庐IT

pthread_self

全部标签

objective-c - 我可以在 -dealloc 中调用 [self retain] 吗?或者,如何确保 dealloc 发生在主线程上?

这是我的情况。这很复杂,所以请耐心等待。我有一个View类,我们称它为MyView。它创建一个加载指示器subview,然后启动将加载数据的后台操作。它还创建了一个block,后台队列操作完成后将在主队列中排队。该block通过添加另一个subview(UITextView)和已加载的数据来准备View。当然,要做到这一点,block必须具有对View的引用。所以后台操作保留了block,block保留了view。到目前为止和我在一起吗?有时MyView的实例会在后台队列操作完成之前从其superView中删除。有时调用block的主队列操作在后台队列操作被完全清理之前被完全清理。在这

objective-c - 在 Objective-C 中,我们是否必须使用 self.var 或仅使用 var 来引用 self 的属性?

如果我向ViewController添加一个属性@property(strong,atomic)UIView*smallBox;并将其合成到.m文件中,该变量实际上可以被任何实例方法中的smallBox引用。但是,self.view不能被view替换,即使view也被定义为UIViewController的属性。为什么有区别,规则是什么? 最佳答案 self.view和view/_view不是一回事。根据您创建实例变量的方式,view或_view引用实际的对象实例变量。直接访问它是危险的,您应该只在init、dealloc或访问器中

ios - 有没有办法确定 self.collectionview.visiblecells 的顺序?

在CollectionView中,我想知道CollectionView中显示的第一项。我想我会查看visibleCells并将成为列表中的第一项,但事实并非如此。 最佳答案 针对Swift5进行了更新letvisibleCells=self.collectionView.indexPathsForVisibleItems.sorted{left,right->Boolinreturnleft.sectionUICollectionViewCell?inreturnself?.collectionView.cellForItem(at

iphone - 从类方法中将委托(delegate)设置为 "self"

比如,我想从辅助类方法调用UIActionSheet。我希望帮助程序类(不是对象)成为此操作表的委托(delegate)。所以我将自己传递给委托(delegate)。UIActionSheet*actionSheet=[[UIActionSheetalloc]initWithTitle:@"MyTitle"delegate:selfcancelButtonTitle:nildestructiveButtonTitle:@"Delete"otherButtonTitles:nil];我的助手类将委托(delegate)方法实现为类方法,一切正常。但是,我从编译器那里收到一条警告,指出不兼

objective-c - 为什么 ((self=[super init]]) 有效,但 (!(self=[super init])) 无效?

出于审美原因,我决定改变这个:if((self=[superinit])){//initself}returnself;进入这个:if(!(self=[superinit]))returnnil;//initselfreturnself;理论上,它们做同样的事情。第一个是经典方式,简单有效。调试第二个,发现差不多可以了。“if”做对了,初始化代码也是,但是,在返回“self”之后,调试器回到“if”并返回nil!我用第二个类(class)制作的所有类(class)我都恢复使用“正确”的方式,因为它们是用nil启动的,但我真的很想知道为什么它会那样做!恐怕这可能是其他错误的结果!

ios - 函数 'pthread_mutex_init' 的隐式声明在 C99 中无效

我正在尝试使用本文here中的互斥锁锁定方法它声明创建一个类的成员变量pthread_mutex_tmutex;然后这样初始化pthread_mutex_init(&mutex,NULL);然后就这样使用它voidMyLockingFunction(){pthread_mutex_lock(&mutex);//Dowork.pthread_mutex_unlock(&mutex);}我在第2步初始化时收到以下警告。Implicitdeclarationoffunction'pthread_mutex_init'isinvalidinC99这是什么意思?我应该忽略它吗?

(self的答案)swift阵列返回函数numberofrows中的0个计数(在tableview中,但其他任何地方都返回正确的数组。

我有一个项目,可以从Internet加载JSON文件,并将其存储在数组和词典中。当我在viewDitload或ViewDidDisappear中打印数组的计数或dict的计数时,我会在JSON文件中获得正确的50个计数。但是在numberOfrows和ObjectForvalue中,请呼叫tableviewDataSource,它将返回计数0。我忽略了一些东西,但是在窗口的打开和关闭时,数组中有信息,但是当表观视图以某种方式重新加载时,数组为空。这是我的代码,任何帮助都非常感谢importCocoaclassViewController:NSViewController,NSTableView

iphone - 什么时候用 self 访问属性,什么时候不访问?

谁能解释设置someObject=someOtherObject;和self.someObject=someOtherObject;之间的区别,如果someObject是用@property创建的类属性(非原子,保留)SomeTypesomeObject;为了澄清我有类似的东西:@interfaceSomeClass:NSObject{SomeType*someObject;}@property(nonatomic,retain)SomeType*someObject;@end我注意到,当我在没有self的情况下使用该属性时,有时会出现EXC_BADACCESS,这看起来很随机。当我使

objective-c - 了解 'self' 并将 self 设置为 super

我一直在关注许多教程,但我对自己感到失望。有人可以帮忙吗?我有下面的init,它是一个实例方法。-(id)initWithScore:(int)s{self=[superinit];if(self){score=s;}returnself;}现在通读代码,我将self设置为superinit,因此self现在指向super。然后我检查自己是否有效并将分数设置为等于我在InitWIthScore上发送的值。到目前为止我已经知道了。但现在我返回指向父类(superclass)的self,那么我如何返回我的子类?因此,假设有人调用我的类传入100,我的代码返回的是super而不是类,那么它是

iphone - 添加目标 :self versus addTarget:nil

我是iOS开发新手。当我以编程方式添加按钮时,我有点困惑。当我们将目标分配给按钮时,如下所示:[buttonaddTarget:selfaction:@selector(CallMe)forControlEvents:UIControlEventTouchUpInside];和[buttonaddTarget:nilaction:@selector(CallMe)forControlEvents:UIControlEventTouchUpInside];这两种情况都是调用CallMe方法。谁能给我解释一下这两行代码之间的实际区别是什么。如果有人能专门解释一下addTarget的工作原理