2012-05-09 1 views
2

UInt32에 NSNumber를 전달하려고합니다. 그러면 UInt32를 NSData 객체에 넣으려고합니다. abit funky ...UInt32를 NSData 객체에 전달하면 null이 반환됩니다. null (null)

NSData 객체의 whats를 문자열로 반환하려고 할 때 (null).

이것은 내 코드의 모습입니다. requestCacheData ..에 CACHE_VALUE를 전달하는 방식과 관련이 있다고 생각합니다.하지만 그 이유는 확실하지 않습니다.

// Use the correctly returned cache number 
    UInt32 CACHE_VALUE = [cacheNumber intValue]; 
    NSLog(@"%lu", CACHE_VALUE); //gives me the correct integervalue 
    NSData * requestCacheData = [[NSData alloc] initWithBytes:&CACHE_VALUE length:sizeof(CACHE_VALUE)]; 

    NSString *myString = [[NSString alloc] initWithData:requestCacheData encoding:NSUTF8StringEncoding]; 
    NSLog(@"%@", myString); //outputs (null) 

어떤 도움을 주시면 감사하겠습니다.

답변

0

NSData에 올바른 문자열 콘텐츠가 포함되지 않은 올바른 NSString을 사용할 수 없습니다. 귀하의 경우

는 당신을 NSData 그냥 바이너리 부호 INT, 당신이 얻을 생각합니까 무엇

를 포함?

NSString* str= @"a NSString"; 
NSData* requestCacheData =[str dataUsingEncoding:NSUTF8StringEncoding]; 
NSString *myString = [[NSString alloc] initWithData:requestCacheData encoding:NSUTF8StringEncoding]; 
NSLog(@"%@", myString); 

당신 수도있는 권리 OUPUT,

를 얻을 수 있지만

단지

NSString *str = [[[NSString alloc] initWithFormat:@"%u",CACHE_VALUE] autorelease]; 
있는 NSString에 UINT을 설정하려면