2011-11-01 35 views
7

Tôi đang cố gắng chuyển một trong các ứng dụng iOS của mình sang Mac OS X và tôi đang cố gắng tìm đối tượng giống như đối tượng OS X. Tôi quan tâm đến việc nhận tên thiết bị, chẳng hạn như "MacBookAir".Lớp UIDevice dành cho Mac OS X?

EDIT/ĐÁP
Như Josh Caswell chỉ ra, bạn có thể sử dụng SCDynamicStoreCopyComputerName then chốt.

Đây là mã:

+ (NSString *)computerName { 
    return [(id)SCDynamicStoreCopyComputerName(NULL, NULL) autorelease]; 
} 
+1

Đối với những người tự hỏi: #import levigroker

+1

Đối với ARC: return CFBridgingRelease (SCDynamicStoreCopyComputerName (NULL, NULL)); – jqgsninimo

Trả lời

5

Các Net Services Programming Guide nói:

Trong Mac OS X trên máy tính để bàn, gọi SCDynamicStore chức năng từ khung System Configuration trả về tên máy tính để bạn có thể vận dụng nó như bất kỳ chuỗi khác. Trong iOS, bạn có thể có được thông tin tương tự từ thuộc tính tên của lớp .

Có vẻ như không phải là một chức năng duy nhất được gọi là SCDynamicStore (lỗi tài liệu), nhưng bạn có thể muốn SCDynamicStoreCopyValue. Có vẻ như bạn nhận được khóa bạn cần sử dụng SCDynamicStoreKeyCreateComputerName.

EDIT: Hoặc, thậm chí tốt hơn, như bạn thấy, sử dụng SCDynamicStoreCopyComputerName chức năng, được tìm thấy trong SCDynamicStoreCopySpecific.h

+0

Cảm ơn Josh. Tôi đã đưa ra đoạn mã trong câu hỏi của mình. Bạn có thể chỉnh sửa câu trả lời của mình để bao gồm đoạn mã, vì vậy những người khác có tham chiếu. Tên máy tính giả sử là một nhiệm vụ đơn giản để tìm nhưng khi nó quay ra thì không. Cảm ơn một lần nữa. – Cyprian

+0

Vui vì tôi có thể giúp đỡ. Cảm ơn bạn đã đưa vào đoạn trích - Tôi chỉ để nó trong câu hỏi, nhưng tôi đã thêm một liên kết tới tài liệu cho hàm đó. –

1
NSHost *host = [NSHost currentHost]; 
NSLog(@"hostName %@",[host localizedName]); 

bạn sẽ nhìn thấy tên mac

1

Swift 4,0 OSX

Dưới đây là những gì tôi cần cho một giá trị tương tự với tên UIDevice

iOS (nhanh chóng 3.2)

let deviceName = UIDevice.current.name 

OSX (nhanh 4,0)

let deviceName = Host.current().name