小编Flo*_*ian的帖子

你如何在Swift中枚举OptionSetType?

我在Swift中有一个自定义的OptionSetType结构.如何枚举实例的所有值?

这是我的OptionSetType:

struct WeekdaySet: OptionSetType {
    let rawValue: UInt8

    init(rawValue: UInt8) {
        self.rawValue = rawValue
    }

    static let Sunday        = WeekdaySet(rawValue: 1 << 0)
    static let Monday        = WeekdaySet(rawValue: 1 << 1)
    static let Tuesday       = WeekdaySet(rawValue: 1 << 2)
    static let Wednesday     = WeekdaySet(rawValue: 1 << 3)
    static let Thursday      = WeekdaySet(rawValue: 1 << 4)
    static let Friday        = WeekdaySet(rawValue: 1 << 5)
    static let Saturday      = WeekdaySet(rawValue: 1 << 6)
}
Run Code Online (Sandbox Code Playgroud)

我想这样的事情:

let weekdays: WeekdaySet = [.Monday, .Tuesday] …
Run Code Online (Sandbox Code Playgroud)

swift swift2 swift3

33
推荐指数
2
解决办法
6352
查看次数

检查Swift中是否存在类

我想在我的Swift iOS应用程序中使用NSURLQueryItem.但是,该类仅在iOS 8中可用,但我的应用程序也应该在iOS 7上运行.如何在Swift中检查类是否存在?

在Objective-C中,您可以执行以下操作:

if ([NSURLQueryItem class]) {
    // Use NSURLQueryItem class
} else {
    // NSURLQueryItem is not available
}
Run Code Online (Sandbox Code Playgroud)

与此问题相关的是:如何检查现有类的方法或属性是否存在?

https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/AdvancedAppTricks/AdvancedAppTricks.html#//apple_ref/doc/uid/TP40007072-CH7-SW4中有一个很好的部分称为支持多个iOS的版本,解释了Objective-C的不同技术.如何将这些转换为Swift?

ios swift

22
推荐指数
3
解决办法
6936
查看次数

核心数据:父上下文和变更传播

我的应用程序中有以下Core Data设置:

Persistent Store Coordinator
  ^ Background MOC (NSPrivateQueueConcurrencyType)
      ^ Main Queue MOC (NSMainQueueConcurrencyType)
Run Code Online (Sandbox Code Playgroud)

这是初始化代码:

_backgroundContext = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSPrivateQueueConcurrencyType];
[_backgroundContext setPersistentStoreCoordinator:self.coordinator];
_mainContext = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSMainQueueConcurrencyType];
[_mainContext setParentContext:_backgroundContext];
Run Code Online (Sandbox Code Playgroud)

我使用背景MOC导入大量数据.我还使用它在后台执行复杂的提取请求,然后将对象ID传递给主队列以使用这些ID获取对象.

这非常有效.但是,我不知道如何让主队列MOC知道后台MOC中所做的更改.我知道如果我在主队列MOC上执行获取请求,它将获得更改,但这不是我想要的.

可以使用NSManagedObjectContextObjectsDidChangeNotification后台MOC发布的通知并调用mergeChangesFromContextDidSaveNotification:主队列MOC吗?这应该导致NSManagedObjectContextObjectsDidChangeNotification主队列MOC 的通知被触发.我在视图控制器中侦听此通知,并检查userInfo更改并相应地重新显示数据.我认为如果你有一个持久的商店协调员和两个附加的MOC,你通常会这样做.但是,当你有孩子/父母的情境时,我不确定这是否是正确的做法.

core-data ios

7
推荐指数
2
解决办法
5043
查看次数

Swift中的惰性属性初始化

你将如何在Swift中实现以下模式?

所述Container类被初始化,其中包含的词典JSON数组.这些词典用于初始化Entry类.但是,Entry当访问entriessearchEntries访问属性时,对象的初始化会延迟发生.

@interface Container

@property (readonly, nonatomic) NSArray *entryDicts;

@property (readonly, nonatomic) NSArray* entries;
@property (readonly, nonatomic) NSDictionary *searchEntries;

@end



@implementation Container

- (instancetype)initWithArray:(NSArray *)array
{
    self = [super init];
    if (self) {
        _entryDicts = array;
    }
    return self;
}

@synthesize entries = _entries;
- (NSArray *)entries
{
    [self loadEntriesIfNeeded];
    return _entries;
}

@synthesize entriesByNumber = _entriesByNumber;
- (NSDictionary *)entriesByNumber
{
    [self loadEntriesIfNeeded];
    return _entriesByNumber;
}

- (void)loadEntriesIfNeeded
{
    if …
Run Code Online (Sandbox Code Playgroud)

swift

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

从核心数据Swift 4检索数组(可转换)

我有一个名为“ Item”的实体,其属性为“ colorArray”,类型为“ Transformable”。

colorArray可以是,例如:

[["Red", "Blue", "Green"], ["Red"], ["Blue", "Green"], ["Green"], ["Blue"], ["Blue", "Green", "Red"]]
Run Code Online (Sandbox Code Playgroud)

然后,我使用以下命令将colorArray保存到核心数据中:

            newEntry.colorArray = colorArray as NSObject
Run Code Online (Sandbox Code Playgroud)

我想从核心数据中检索colorArray(以与保存时相同的数组格式),执行此操作的最佳方法是什么?

arrays core-data nsfetchrequest swift4

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

标签 统计

swift ×3

core-data ×2

ios ×2

arrays ×1

nsfetchrequest ×1

swift2 ×1

swift3 ×1

swift4 ×1