小编Jos*_* B.的帖子

在Objective C中使用静态init时的好处?

最近我发现了来自Github的webrtc-ios示例.当我浏览项目时,我注意到VideoView类使用静态方法,我不确定是否有必要.VideoView是UIView的子类,它覆盖了两个init方法,initWithFrame:initWithCoder:.我知道覆盖这些init方法然后使用一些方法来设置其他东西是很正常的- (void)setup;.

但是VideoView类使用静态函数static void init(VideoView *self).问题是使用静态函数与普通ObjC方法有什么好处?

VideoView类中的代码如下所示:

-(id)initWithFrame:(CGRect)frame {

     if (self = [super initWithFrame:frame]) {
         init(self);
     }
     return self; 
}

-(id)initWithCoder:(NSCoder *)aDecoder {

     if (self = [super initWithCoder:aDecoder]) {
         init(self);
     }
     return self; 
}

 static void init(VideoView *self) { ... }
Run Code Online (Sandbox Code Playgroud)

objective-c ios webrtc

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

UICollectionViewDiffableDataSource - 具有不同散列的相同项目时崩溃

我用来UICollectionViewDiffableDataSource填充UICollectionView数据。我的理解是,DiffableDataSource通过使用来比较项目==,然后如果项目相等,它会比较hash值以查看是否发生了变化。

但根据我得到的错误,情况并非如此。

Diffable data source detected item identifiers that are equal but have different hash values. Two identifiers which compare as equal must return the same hash value. You must fix this in the Hashable (Swift) or hash property (Objective-C) implementation for the type of these identifiers
Run Code Online (Sandbox Code Playgroud)

就我而言,我有与 uniqueID 进行比较的项目,并且 hashValue 由用户输入的值确定。如果 == 和 hashValue 不能不同,那么使用它们有什么意义呢?

uikit uicollectionview swift uicollectionviewdiffabledatasource

7
推荐指数
1
解决办法
465
查看次数

为现有的GitHub仓库创建CocoaPod

最近我创建了小型iOS类,我想将它与CocoaPods一起使用.到现在为止我已经将它添加到GitHub了,我已经按照本教程解释了创建CocoaPod的过程,但我坚持这个:"将Podspec添加到CocoaPods Specs Repo".

有人可以解释以下步骤,例如如何分叉存储库并发出拉取请求.我知道Google上有很多类似的答案,但如果有人可以分享它创建CocoaPods的经验,我将非常感激.

还有一个选项可以在我将pod添加到我的项目之前检查最终结果是什么?

github ios cocoapods

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