2014-11-01 2 views

답변

2

파일 읽기에 대한 질문에 답변하려면 NSFileManager을 사용해야합니다. Swift는 자체 파일 API를 가지고 있지 않습니다. 또한 단순히 파일을 열 수 없습니다. /dev/random은 영원히 계속 출력되므로 파일 핸들러를 사용해야합니다. (* Âý3o ÷ - -»E2 @ AAX < øWýsñniâõãQüÕ £ ÆsûÄÏþDÊU²OÑ9H) úûÓWhAóûoκfßpÍC %

¬Ñ < 4R-ÐÛÍäÓ @

let manager = NSFileManager.defaultManager() 
let randomPath = "/dev/random" 

if manager.fileExistsAtPath(randomPath) { 
    let handle = NSFileHandle(forReadingAtPath: randomPath) 

    if let validHandle = handle { 
     let desiredLength = 256 

     // Warning: Instead of returning NSData?, this method throws an exception if there's an error. Consider adding additional error handling. 
     let fileData = validHandle.readDataOfLength(desiredLength) 
     let fileString = NSString(data: fileData, encoding: NSASCIIStringEncoding) 
     if (fileString != nil) { 
      println(fileString!) 
     } 
    } 
} 

예 콘솔 출력 : 여기

는 예제 M'ò«ÿ @ '- gVüü] ® % å ¢ ¢ ¢  ¨ ¨                                               5/0/p¨¾üüüüèè«î % å.öŪ¿¯¨ôø + EeÅþUå5ì % ÿ¼pÕÊ :

의도가 배열에 임의의 숫자를로드하는 경우, 당신은 단지 균일하게 분포 된 난수를 반환하는, arc4random_uniform()를 사용해야 말했다 :

var randomNumbers = [Int]() 

for i in 1...10 { 
    randomNumbers.append(Int(arc4random_uniform(1000))) 
} 

println(randomNumbers) 

예 출력 :

[27, 796, 150, 439, 955, 678, 556, 816, 571, 130]

+0

감사합니다! 놀이터에서 일하고있어. 네가 가진 걸 얻었 어. –

+0

@Amanda_Panda 멋지다! 다행. –

1

그냥 fo 완전한 완성을 위해서 : Swift에서 open/read/write/close를 C와 비슷한 방식으로 사용할 수 있습니다 :

var array = [UInt8](count: 10, repeatedValue: 0) 

let fd = open("/dev/random", O_RDONLY) 
if fd != -1 { 
    read(fd, &array, UInt(sizeofValue(array) * array.count)) 
    close(fd) 
    println(array) 
}