2014-11-12 2 views
0

Я пытаюсь реализовать приложение, используя среду GCDAsynSocket с Swift. Я застрял в методе readDataToLength GCDASyncSocket.GCDASyncScocket readDataToLength: с быстрым

В Objective C, мы используем, чтобы записать его в следующей редакции:

[socket readDataToLength:sizeof(uint64_t) withTimeout:-1.0 tag:0]; 

Теперь, я не знаю, как я могу заменить SizeOf (uint64_t) в Swift.

+0

Удалены пух и непристойные метки. – Deduplicator

ответ

3

Это почти похоже на Свифта, но в отличие от (C) объективно-, существуют различные ключевые слова для взятия размер типа :

let size = sizeof(UInt64) 

или размер значения :

var x : UInt64 = 0 
let size = sizeofValue(x) 
+0

Это не сработало, я продолжаю получать эту ошибку: /Users/Vikramjeet/Desktop/MPSocketTest/MPSocketTest/ViewController.swift:81:19: Невозможно вызвать 'readDataToLength' с помощью списка аргументов типа '(Int, withTimeout: $ T5 , tag: IntegerLiteralConvertible) '. Кажется, сработает, если я заменю размер на int как 1024. Есть идеи? –

+0

@VikSingh: вам нужно искать точный тип каждого параметра, а затем преобразовывать аргументы в этот тип, например 'UInt (sizeof (UInt64)). –

+0

Ofcourse. Спасибо, что это сработало. Я до сих пор не привык к этим ошибкам Swift. –

Смежные вопросы