小编Ver*_*ing的帖子

Xcode 14 和 iOS 5.5 模拟器

使用 iOS 16 更新到 Xcode 14 后,我没有看到任何 5.5 设备 - 这是有道理的,因为 Xcode 模拟器似乎只支持一种 iOS,并且没有任何 5.5 设备(例如 iPhone 8 Plus)运行 iOS 16。

不过,App Store 仍然强制要求 5.5 屏幕截图。那么如何创建这些屏幕截图呢?我能想到的解决方案有这些

  1. 使用 iPhone 8 Plus 等物理 5.5 设备(我没有)
  2. 将 Xcode 降级到版本 13 以支持 iOS 15。我非常想避免这种情况,此外我的一些 Mac 设置是虚拟的,我无法控制 Xcode 版本)

iphone xcode screenshot app-store ios

4
推荐指数
1
解决办法
7803
查看次数

Java同步语句

我需要像这样的线程安全的arraylist.

public class BookingList {

  private List<Booking> bookings;

  public BookingList() {
      bookings = Collections.synchronizedList(new ArrayList<Booking>());
  }

  @Override
  public void addBooking(Booking booking)
  {
    synchronized (bookings) {
        bookings.add(booking);
    }   
  }

  @Override
  public void removeBooking(Booking booking)
  {
    synchronized (bookings) {
        bookings.remove(booking);
    }   
  }
}
Run Code Online (Sandbox Code Playgroud)

根据java doc,当使用Collections.synchronizedList时,需要同步对列表的每次访问.我不确定我的同步块是否会这样做?

  1. 我使用的synchronized块是否相当于

    ...
    public synchronized void addBooking(Booking booking) {
      bookings.add(booking);
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 我应该像这样使用ReentrantLock吗?

    private Lock lock = new ReentrantLock();
    public void addBooking(Booking booking) {
      try {
        lock.lock;
        bookings.add(booking);
      } finally {
        lock.release();
      }
    }
    
    Run Code Online (Sandbox Code Playgroud)

java synchronization synchronized-block reentrantlock

0
推荐指数
1
解决办法
404
查看次数