我一直在将我的项目升级到Swift2.在解决了许多错误之后,我在构建项目时遇到了错误.
错误位于Objective-V Generated Interface Header,
Xcode正在打印此错误 Type argument 'CGColorRef' (aka 'struct CGColor *') is neither an Objective-C object nor a block type
这是代码,错误打印在**之间的行上:
SWIFT_CLASS("_TtC519RadialGradientLayer")
@interface RadialGradientLayer : CALayer
**@property (nonatomic, copy) NSArray<CGColorRef> * __nullable colors;**
@property (nonatomic, copy) NSArray<NSNumber *> * __nullable locations;
@property (nonatomic) CGPoint center;
@property (nonatomic) CGFloat startRadius;
@property (nonatomic) CGFloat endRadius;
- (nullable instancetype)initWithCoder:(NSCoder * __nonnull)aDecoder OBJC_DESIGNATED_INITIALIZER;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
- (nonnull instancetype)initWithLayer:(id __nonnull)layer OBJC_DESIGNATED_INITIALIZER;
- (void)drawInContext:(CGContextRef __nonnull)ctx;
+ (BOOL)needsDisplayForKey:(NSString * __nonnull)key;
@end …Run Code Online (Sandbox Code Playgroud) 所以当我的上传请求失败时,我对如何实现重试逻辑感到有点迷失.
这是我的代码我想要一些指导如何做到这一点
func startUploading(failure failure: (NSError) -> Void, success: () -> Void, progress: (Double) -> Void) {
DDLogDebug("JogUploader: Creating jog: \(self.jog)")
API.sharedInstance.createJog(self.jog,
failure: { error in
failure(error)
}, success: {_ in
success()
})
}
Run Code Online (Sandbox Code Playgroud) 我一直在搞乱iOS11. 我发现了很多带有标准UIImage等的示例,但没有使用自定义文件。
drop 部分效果很好,我用它来删除自定义文件并将其导入到我的应用程序中。
问题是我只得到这个文件的数据,我想得到它的名称和扩展名。
我不知道我处理丢弃的自定义文件的方式是否是获取此信息的方式。如果是这样,您如何从文件中获取这些信息?
我有一个DropFile符合NSItemProviderReading协议的类。
class DropFile : NSObject, NSItemProviderReading {
let fileData:Data?
required init(data:Data, typeIdentifier:String) {
fileData = data
}
static var readableTypeIdentifiersForItemProvider: [String] {
var documentTypeArray: [String] = []
for ext in FileImportProcessHelper.sharedInstance.getImportDocumentType() {
let UTI = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, ext as CFString, nil)
documentTypeArray.append((UTI?.takeRetainedValue() as String?)!)
}
return documentTypeArray
}
static func object(withItemProviderData data: Data, typeIdentifier: String) throws -> Self {
return self.init(data: data, typeIdentifier: typeIdentifier)
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的 …
我正在将我的项目升级到Swift2,但遇到了两个错误,我真的不知道为什么以前没有这些错误。
第一个是 “ Initializer不会从其超类覆盖指定的初始化器”
第二个是 “必须调用超类'UITableViewHeaderFooterView'的指定初始化程序”
这是我班上的代码:
import UIKit
@IBDesignable
class CardShadowTableViewHeaderFooterView: UITableViewHeaderFooterView {
// MARK: - Public
override init(frame: CGRect) { <-- First error
super.init(frame: frame) <-- Second error
self.applyCardShadowStyle()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
self.applyCardShadowStyle()
}
// MARK: - Overrides
override func layoutSubviews() {
super.layoutSubviews()
self.updateCardShadowPath()
}
}
Run Code Online (Sandbox Code Playgroud)
确实是因为'UITableViewHeaderFooterView'的初始化是
public init(reuseIdentifier: String?)
public init?(coder aDecoder: NSCoder)
Run Code Online (Sandbox Code Playgroud)
但是'UITableViewHeaderFooterView'也从UIView继承了我需要的init public init(frame: CGRect)
这是我在TableViewController中用于创建标题的代码。
override func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let …Run Code Online (Sandbox Code Playgroud)