Да, вы можете. Я только что протестировал, и он работает. Вам просто нужно добавить свой таймер в основной цикл запуска NSRunLoopCommonModes:
RunLoop.main.add(yourTimerName, forMode: .commonModes)
import NotificationCenter
class TodayViewController: UIViewController, NCWidgetProviding {
@IBOutlet weak var strTimer: UILabel!
var timer = Timer()
func updateInfo() {
strTimer.text = Date().description
}
override func viewDidLoad() {
super.viewDidLoad()
timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(updateInfo), userInfo: nil, repeats: true)
RunLoop.main.add(timer, forMode: .commonModes)
}
func widgetPerformUpdate(completionHandler: @escaping (NCUpdateResult) -> Void) {
completionHandler(.newData)
}
}
JTOpen, версия IBM с открытым исходным кодом их панели инструментов Java имеет набор классов для доступа к объектам AS/400, включая FileReader и FileWriter для доступа к собственным текстовым файлам AS400. Это может быть легче использовать тогда запись Ваших собственных классов преобразования.
От домашней страницы JTOpen:
Вот всего несколько из многих i5/OS и ресурсов ОС/400, можно получить доступ к использованию JTOpen:
- База данных - JDBC (SQL) и доступ рекордного уровня (DDM)
- Интегрированная Файловая система
- вызовы Программы
- Команды
- очереди Данных
- области Data
- ресурсы Печати/шпульки
- продукт и информация PTF
- Jobs и журналы задания
- сообщения, очереди сообщений, файлы сообщений
- Пользователи и группы
- Пространства пользователя
- Системные значения
- Состояние системы
Обратите внимание на то, что Строка в Java содержит текст в собственном кодировании Java. Когда содержание ASCII или EBCDIC "представляет в виде строки" в памяти до кодирования Строкой, у Вас будет он в байте [].
ASCII -> Java: new String(bytes, "ASCII") EBCDIC -> Java: new String(bytes, "Cp1047") Java -> ASCII: string.getBytes("ASCII") Java -> EBCDIC: string.getBytes("Cp1047")
Необходимо использовать или набор символов Java Cp1047 (Java 5) или Cp500 (JDK 1.3 +).
Использование конструктор String: String(byte[] bytes, [int offset, int length,] String enc)
Можно создать один yoursef с этим , таблица преобразования .
Но здесь является сайтом, который имеет ссылку на пример Java.
Должно быть довольно просто записать карту для набора символов EBCDIC, и один для набора символов ASCII, и в каждом возврате символьное представление другого. Тогда просто цикл по строке, чтобы перевести, и искать каждый символ в карте и добавить его к выходной строке.
я не знаю, существует ли какой-либо общедоступный преобразователь, но не должно требоваться больше чем часа или так записать тот.