DoKit icon indicating copy to clipboard operation
DoKit copied to clipboard

swift 项目编译报错

Open QiuYeHong90 opened this issue 3 years ago • 5 comments

截屏2021-08-27 下午5 11 18 Cannot initialize a parameter of type 'id _Nonnull' with an rvalue of type 'Class'

QiuYeHong90 avatar Aug 27 '21 09:08 QiuYeHong90

WithMultiControl 这个swift项目根本无法运行咯

QiuYeHong90 avatar Aug 27 '21 10:08 QiuYeHong90

WithMultiControl 这个swift项目根本无法运行咯 在pod替换(建议,但是我在这里报错了,哈哈),直接改这一句代码(更新记得重新改回来,麻烦了点) layoutCache[(id<NSCopying>)currentClass] = ivars;

KALIANS avatar Aug 30 '21 08:08 KALIANS

post_install do |installer|
  installer.pods_project.build_configurations.each do |config|
      config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64"
      ## Fix for XCode 12.5
      find_and_replace("Pods/FBRetainCycleDetector/FBRetainCycleDetector/Layout/Classes/FBClassStrongLayout.mm",
                       "layoutCache[currentClass] = ivars;", "layoutCache[(id<NSCopying>)currentClass] = ivars;")
    end
    installer.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
            if config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'].to_f < 11.0
                config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '11.0'
            end
        end
    end
end


def find_and_replace(dir, findstr, replacestr)
  Dir[dir].each do |name|
      text = File.read(name)
      replace = text.gsub(findstr,replacestr)
      if text != replace
          puts "Fix: " + name
          File.open(name, "w") { |file| file.puts replace }
          STDOUT.flush
      end
  end
  Dir[dir + '*/'].each(&method(:find_and_replace))
end


看这样可以么?

QiuYeHong90 avatar Sep 01 '21 02:09 QiuYeHong90

希望作者大大快快修复这个问题哇,xcode14 swift内存泄露用不了哇

duduwei avatar Oct 31 '22 12:10 duduwei

layoutCache[(id)currentClass] = ivars; 使用这个之后,swift项目,打开内存检测开关,运行项目直接崩 截屏2022-10-31 20 54 25

duduwei avatar Oct 31 '22 12:10 duduwei