Đây không phải là một câu hỏi về một vấn đề thích hợp. Đó là một câu hỏi mà tôi cố gắng làm sâu sắc thêm sự hiểu biết của tôi về mục tiêu C hoặc cụ thể hơn về Quỹ Cacao.Khi nào tôi nên sử dụng NSURL thay vì NSString và ngược lại?
Khi xử lý việc tải lên và tải xuống tệp từ máy chủ đến ứng dụng của tôi, tôi liên tục bị rách giữa việc sử dụng NSURL
hoặc NSString
cho mọi thứ liên quan đến đường dẫn. Tất nhiên khi có một API hiện tại tôi chỉ sử dụng nó theo các thông số kỹ thuật. Nhưng khi tôi lưu trữ các đường dẫn của riêng mình hoặc tạo các lớp tùy chỉnh đối phó với chúng, tôi bị nhầm lẫn mà trong đó hai sẽ là lựa chọn tốt hơn.
NSString
được sử dụng ở mọi nơi và có các phương pháp tiện lợi như stringByAppendingPathComponent:
và stringByAppendingPathExtension:
. Tôi có thể dễ dàng chuyển đổi sang NSURL bằng cách tạo một cá thể mới với [NSURL URLWithString:@"string"]
và cách khác xung quanh bằng cách gọi [url path]
trên phiên bản NSURL. Nhưng sự khác biệt là có một lý do, phải không?
Sự nhầm lẫn của tôi phát triển khi tôi xem các tệp tiêu đề của một cái gì đó như NSFileManager. Hai phương pháp này khá gần nhau:
- (BOOL)copyItemAtPath:(NSString *)srcPath toPath:(NSString *)dstPath error:(NSError **)error;
- (BOOL)copyItemAtURL:(NSURL *)srcURL toURL:(NSURL *)dstURL error:(NSError **)error NS_AVAILABLE(10_6, 4_0);
Tại sao tôi lại chọn sử dụng một phương thức khác, đặc biệt khi chuyển đổi giữa hai phương pháp này được thực hiện dễ dàng như vậy? Và tại sao Apple phải trải qua sự cố khi tạo các API gần giống hệt nhau để sử dụng cả hai loại dữ liệu?
Nếu ai đó có thông tin chi tiết hơn về thời điểm sử dụng NSURL thay vì NSString cho các lớp của riêng bạn xử lý đường dẫn tệp và url từ xa, vui lòng chia sẻ! Chúc mừng.
Điều gì xảy ra khi tham chiếu tệp trên hệ thống tệp cục bộ? – Jason
Ý của bạn là gì? 'NSURL' có [tập hợp các phương pháp mở rộng xử lý URL hệ thống tệp] (https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSURL_Class/Reference/Reference.html#//apple_ref/doc/uid/20000301-SW25). – epologee
Vì vậy, NSString. Có vẻ như NSURL thường được ưa thích, nhưng tôi tự hỏi liệu nó có mang đến các tệp cục bộ không. – Jason