Câu hỏi thường gặp

Tôi gặp sự cố khi tạo bằng Xcode.

Xem phần Gỡ lỗi bản dựng.

Làm thế nào để sửa lỗi "biểu tượng không xác định" khi xây dựng?

Xem Cài đặt liên kết bắt buộc.

Tôi gặp sự cố khi sử dụng j2objc trên dòng lệnh.

Cách nhanh nhất để tạo dòng lệnh cho j2objc là bắt đầu bằng javac, chỉ định đường dẫn lớp (không bắt buộc), đường dẫn nguồn (không bắt buộc), thư mục đầu ra và danh sách tệp nguồn. Sau khi biên dịch thành công, hãy thay thế "j2objc" bằng "javac" và thêm bất kỳ cờ nào dành riêng cho j2objc. Lý do của tính năng này là vì j2objc sử dụng trình biên dịch Java làm giao diện người dùng, và do đó sử dụng các đối số giống như trình biên dịch. Hãy nhớ: nếu không biên dịch được thì nó không thể dịch được!

Việc thu gom rác được xử lý như thế nào?

Hãy xem phần Quản lý bộ nhớ. Chúng tôi sẽ tiếp tục tinh chỉnh mã đã tạo để cải thiện cách quản lý bộ nhớ bằng cách sử dụng các công cụ phân tích và phát hiện rò rỉ của Xcode. Các dự án sử dụng J2ObjC cũng nên theo dõi hiệu suất và phát hiện rò rỉ (như mọi dự án iOS) cũng như để báo cáo mọi vấn đề phát hiện được.

Có thể giảm kích thước mã được dịch bằng cách nào? Điều gì có thể đẩy nhanh tốc độ dịch?

Xem nội dung Loại bỏ mã chết.

j2objc xử lý lệnh nhập bên trong các tệp .java như thế nào?

j2objc sử dụng trình biên dịch javac làm giao diện người dùng, vì vậy tất cả các mục nhập sẽ được đọc như mọi trình biên dịch Java khác. Để chỉ định vị trí tìm các lớp được nhập, hãy sử dụng cùng một -classpath và -sourcepath mà bạn sử dụng với javac. Khi tạo tệp Objective-C, các thông tin tham chiếu lớp bên ngoài sẽ được thu thập và các lệnh #import sẽ được thêm vào tệp tiêu đề đã tạo (.h) hoặc tệp triển khai (.m) nếu phù hợp.

Tại sao một số giá trị tối thiểu và tối đa cho các kiểu số khác với thông số kỹ thuật của Java?

Các giá trị này khác với giá trị Java trả về vì các giá trị này nằm ngoài giá trị mà trình biên dịch Objective-C sẽ chấp nhận là hợp lệ. Thay vào đó, chúng tôi sử dụng các giá trị tối thiểu và tối đa được xác định trong /usr/include/values.h.