3
self.mapper.identityIdsForQuickbloxUserIds(userIDs.map{($0 as! NSNumber).unsignedLongValue}, completion: { identityIdsMapping, error in

呼び出し結果タイプ '_?' を変換できません 期待される型 '[UInt]' に

userIDsNSSet

ここに関数があります:

func identityIdsForQuickbloxUserIds(userIds:[UInt], completion:(identityIdsMapping:[UInt: String]?, error:NSError?) -> Void)

正しい方法で変換するには?

これは、そのセットを返す外部関数です。

- (void)allDialogsWithPageLimit:(NSUInteger)limit
                extendedRequest:(QB_NULLABLE NSDictionary *)extendedRequest
                 iterationBlock:(void(^QB_NULLABLE_S )(QBResponse *QB_NONNULL_S response, NSArray QB_GENERIC(QBChatDialog *) *QB_NULLABLE_S dialogObjects, NSSet QB_GENERIC(NSNumber *) * QB_NULLABLE_S dialogsUsersIDs, BOOL * QB_NONNULL_S stop))iterationBlock
                     completion:(void(^QB_NULLABLE_S)(QBResponse * QB_NONNULL_S response))completion;

ご覧のとおり、ここから NSSet を取得しました。

NSSet QB_GENERIC(NSNumber *) * QB_NULLABLE_S dialogsUsersIDs

そのメソッドはQuickBlox SDKからのものです

4

2 に答える 2

1

例 1:

以下に簡単な例を示します。

    identityIdsForQuickbloxUserIds([1,2,3]) { dictionary, error in


    }

例 2:

    let x = NSSet(array: [1, 2, 3]).map { $0 as! UInt }

    identityIdsForQuickbloxUserIds(x) { dictionary, error in


    }
于 2016-04-19T17:36:13.340 に答える
1

userIDsオプションでSet<NSNumber>?はないSet<NSNumber>ので、最初にこのようなものを使用する場合はアンラップが必要です

var ids = userIDs?.map { $0.unsignedLongValue } ?? [UInt]()

...

identityIdsForQuickbloxUserIds(ids, ...)
于 2016-05-04T14:37:18.800 に答える