iPhone пишущий двоичные данные

Попробуйте это:

    declare @lowyear int
set @lowyear = 2004
declare @thisyear int
set @thisyear = year(getdate())
while @thisyear >= @lowyear
begin
print @thisyear
set @thisyear = (@thisyear - 1)
end

Возвраты

2009
2008
2007
2006
2005
2004

, Когда Вы поражаете Jan 1, 2010. Тот же код возвратится:

2010
2009
2008
2007
2006
2005
2004
6
задан quano 6 October 2009 в 15:38
поделиться

1 ответ

Экспериментировали с этим:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0];

NSString *file = [documentsDirectory stringByAppendingPathComponent:@"binaryData"];

float b = 32.0f;

NSMutableData *data = [NSMutableData dataWithLength:sizeof(float)];
[data appendBytes:&b length:sizeof(float)];
[data writeToFile:file atomically:YES];

NSData *read = [NSData dataWithContentsOfFile:file];
float b2;
NSRange test = {0,4};
[read getBytes:&b2 range:test];

Странно то, что файл записано, кажется, 8 байтов, а не 4. Можно даже инициализировать nsdata с длиной 0, добавить число с плавающей запятой, а затем записать, и тогда файл будет иметь размер 4 байта. Почему NSData по умолчанию добавляет 4 байта? NSData длиной 4 должен привести к файлу длиной 4, а не 8.

Почему NSData по умолчанию добавляет 4 байта? NSData длиной 4 должен привести к файлу длиной 4, а не 8.

Почему NSData по умолчанию добавляет 4 байта? NSData длиной 4 должен привести к файлу длиной 4, а не 8.

6
ответ дан 10 December 2019 в 02:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: