2011-01-06 32 views
6

Gần đây tôi đã giới thiệu In qua AirPrint nhưng không muốn bỏ hỗ trợ cho các phiên bản 4.2 trước (rõ ràng). Thực hiện nó trước khi cho những thứ như Game Center, vv Những gì tôi thấy đặc biệt kỳ lạ trong trường hợp này là tôi đã phải liên kết yếu UIKit. In ấn không được chứa trong khuôn khổ riêng của nó cho phép tôi trở nên chi tiết hơn.Quỹ liên kết yếu và UIKit?

Điều này không cảm thấy đúng, mặc dù nó giải quyết được vấn đề của tôi cho phép ứng dụng chạy đúng trên tất cả các phiên bản.

Trong Apple's SDK Compatibility Guide họ nêu:

Khi sử dụng một khuôn khổ đó là sẵn trong mục tiêu triển khai của bạn, bạn nên yêu cầu khuôn khổ đó (và không yếu liên kết nó).

UIKit sẵn, chỉ cần không lớp học như UIPrintInfo, UIPrintInteractionController vv

Am I đúng rằng nó có vẻ kỳ lạ đến yếu liên kết một khung cốt lõi như vậy? Có cách nào tốt hơn?

+0

bạn có tìm thấy câu trả lời cho điều này chưa? Dường như việc sử dụng NS_CLASS_AVAILABLE là tốt nếu bạn chưa khai báo kiểu của lớp và kiểm tra nó trước tiên. đã làm việc ra khỏi 2 liên kết này: http://goo.gl/6yH4U và http://goo.gl/FiOd9 Tôi vẫn chưa tìm được giải pháp phù hợp. –

Trả lời

2

Có cách tốt hơn. iOS 4.2 đã giới thiệu NS_CLASS_AVAILABLE cho mục đích này, nhưng có một số hạn chế khi sử dụng nó. Tất cả chi tiết được liệt kê trong tài liệu được liên kết với bên dưới:

http://developer.apple.com/library/ios/#documentation/DeveloperTools/Conceptual/cross_development/Using/using.html

+0

Để làm điều này cụ thể hơn: kiểm tra tại thời gian chạy bằng cách sử dụng [UIPrintInfo class], nếu điều này trả về nil bạn đang ở trên một hệ thống cũ hơn và nên bỏ qua/vô hiệu hóa chức năng in của bạn. –

+0

@Steven Kramer: Tôi có cùng một vấn đề. Tôi sử dụng - (BOOL) canPrint { BOOL result = NO; \t Lớp inClass = (NSClassFromString (@ "UIPrintInteractionController")); \t if (printClass! = Nil) { \t \t kết quả = [UIPrintInteractionController isPrintingAvailable]; \t} kết quả trả về; }. Sau đó, tôi kiểm tra [tự in] để bật/tắt chức năng in, nhưng nó không hoạt động. Tôi đã thử nó trên ipod touch với ios 3.1.3. Tôi cũng đã thử với NSClassFromString (@ "UIPrintInfo"), nhưng không có gì. Bạn có gợi ý nào không? – Sefran2

+0

Bạn có ý nghĩa gì bởi "không hoạt động"? Liên kết lỗi? Lỗi liên kết động? Hay là bài kiểm tra vừa trả về 'KHÔNG', nó sẽ trả về 'CÓ' hoặc ngược lại? –

Các vấn đề liên quan