小编sar*_*rah的帖子

如何删除警告:" - pie被忽略.它仅在链接主可执行文件时使用"

在此输入图像描述

自从更新到Xcode10和Swift 4.2后,我总是在我的pod中获得这个构建时间警告.我该怎么做才能删除此警告?

我试图删除派生数据,清理和生成项目,但它不起作用:(

我发现有人在这里问了同样的问题https://github.com/Alamofire/Alamofire/issues/2624并且Jon Shier得到了答案,但是在删除以前的xcworkspace并更新cocoapods之后我仍然无法解决问题,我没有实现更改"生成位置相关的可执行文件"设置,因为我找不到它.请分享,如果你能找到这个问题的解决方案:)

xcode ios cocoapods

30
推荐指数
3
解决办法
3518
查看次数

如何为 AndroidViewModel 创建视图模型工厂?

我需要在创建视图模型时传递值(userData),所以我需要创建一个视图模型工厂

这是我的 viewModel,我需要applicationuserData初始化它ScoreViewModel

class ScoreViewModel(application: Application, userData: UserKM) : AndroidViewModel(application) {



}
Run Code Online (Sandbox Code Playgroud)

但现在我很困惑如何application在创建 viewModel 工厂时通过

class ScoreViewModelFactory(private val userData: UserKM) : ViewModelProvider.Factory {

    override fun <T : ViewModel?> create(modelClass: Class<T>): T {
        if (modelClass.isAssignableFrom(ScoreViewModel::class.java)) {

            return ScoreViewModel(userData = userData,application = ?????? ) as T
        }
        throw IllegalArgumentException("Unknown ViewModel class")
    }

}
Run Code Online (Sandbox Code Playgroud)

我该怎么办 ?

android kotlin android-viewmodel android-architecture-components android-jetpack

7
推荐指数
1
解决办法
6220
查看次数

如何在swift中获得这个周末约会?

如果当前日期是2018年8月3日(星期五),我想获得2018年8月5日(星期六和星期日)

如果当前日期是8月4日(星期六),我仍然希望获得2018年8月5日(星期六和星期日)

如果当前日期是8月6日(星期一)那么我想得到8月11日和12日(星期六和星期日)

如何在swift中做到这一点?

ios swift

6
推荐指数
1
解决办法
581
查看次数

为什么在子集合中创建多个文档后,我收到 Cloud Function 内存泄漏警告?

所以我使用:

  1. 节点 14
  2. firebase-admin 9.5.0
  3. 火力基地功能 3.13.2
  4. 火力基地工具 9.8.0

所以我仍然使用Firestore 和 Cloud Function 模拟器,尚未部署在实际生产服务器中。

每当我关闭服务器时,Firestore 模拟器中的所有文档都会被删除,对吧。

所以我创建了一个脚本来填充 firestore 模拟器。我使用云函数 http 触发器,因此在我点击该端点后,Firestore 模拟器将填充我需要的文档。我像这样创建http触发器

export const populateFirestoreData = functions
.https.onRequest(async (req, res) => {

    // I create 5 dummy user documents
    creatingDummyUsers()

    // then create 8 dummy event documents in attendedEvents sub-collection
    creatingDummyAttendedEvents()

})

function creatingDummyUsers() {

    const dummyUsers = []; // 5 data here

    const promises = dummyUsers.map( (dummyUser) => db.doc(`users/${dummyUser.uid}`).set(dummyUser);
    await Promise.all(promises)

}

function creatingDummyAttendedEvents() {

    const dummyEvents …
Run Code Online (Sandbox Code Playgroud)

node.js firebase google-cloud-functions google-cloud-firestore

6
推荐指数
0
解决办法
141
查看次数

如何快速制作可扩展的集合视图?

在此处输入图片说明

我有 2 个集合视图部分,当第一次加载这个 VC 时,两个部分(室内和室外)最初只会显示 3 个项目。

但是在用户按下“更多”按钮后,室内或室外的每个部分都会展开并显示所有可用的项目,如下图

在此处输入图片说明

我试图制作代码,但似乎有时它可以扩展,有时它不扩展(仍然显示 3 个项目)。

这是主控制器中的代码:

class FacilitiesVC: UIViewController {

    @IBOutlet weak var collectionView: UICollectionView!

    var facilitiesCategoryData = [[String:Any]]()
    var outdoorFacilitiesIsExpanded = false
    var indoorFacilitiesIsExpanded = false

    override func viewDidLoad() {
        super.viewDidLoad()

        getIndoorOutdoorFacilitiesData()
    }

}

extension FacilitiesVC {

    // MARK: - Helper Methods

    func getIndoorOutdoorFacilitiesData() {

        let facilitiesData = FacilitiesCategoryLibrary.fetchFacilitiesCategory()
        var indoorFacilities = [FacilitiesCategory]()
        var outdoorFacilities = [FacilitiesCategory]()

        // distinguishing between indoor and outdoor data
        for facData in facilitiesData {

            if facData.type == "Indoor …
Run Code Online (Sandbox Code Playgroud)

ios uicollectionview uicollectionviewcell swift

5
推荐指数
0
解决办法
5181
查看次数

如何在swift中在UIImage上绘制/涂鸦线?

在此输入图像描述

我需要在UIImage中绘制/涂鸦一行,如上图所示,我在UIView上看到很多教程涂鸦线但在UIImage中没有.

用户在图像上涂鸦后,我想将其保存为新图像(具有线条的图像).我怎么在Swift中做到这一点?

我只能在UIView上找到绘制线而不是在UIImage中用于绘制UIView就像这个在youtube教程http://youtube.com/watch?v=gbFHqHHApC4中,我将其更改为继承DrawView到UIImageView

   struct  Stroke {
    let startPoint : CGPoint
    let endPoint : CGPoint
    let strokeColor : CGColor
}


class DrawView : UIImageView {

    var isDrawing = false
    var lastPoint : CGPoint!
    var strokeColor : CGColor! = UIColor.black.cgColor
    var strokes = [Stroke]()


    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {

        guard !isDrawing else { return }
        isDrawing = true

        guard let touch = touches.first else {return}
        let currentPoint = touch.location(in: self)
        lastPoint = currentPoint
        print(currentPoint)


    }



    override …
Run Code Online (Sandbox Code Playgroud)

uiimage ios swift

5
推荐指数
1
解决办法
1431
查看次数

如何在Swift函数中将表达式作为参数传递?

我是初级iOS开发人员.我想重构我的代码.目前我想重构我的领域方法.为了保存或删除Realm中的数据,我需要在整个地方使用很多try try block,所以我想提供一个服务来处理这个问题.我试过但我不知道这是不是正确的方法

import RealmSwift

class RealmService {

    private init() {}
    static let shared = RealmService()

    var realm = try! Realm()

    func save(expression: ()) {

        do {
            try realm.write {

            // I want to pass the expression in this block here

                expression
            }
        } catch {
            post(error)
        }

    }


}
Run Code Online (Sandbox Code Playgroud)

用法:

func saveToRealmDatabase(wishList: WishList, product: Product) {


    RealmService.shared.save(expression: {
        // I want to pass expression in the block in here as argument
        wishList.products.append(product)
    }())



}
Run Code Online (Sandbox Code Playgroud)

我想将表达式wishList.products.append(product)作为RealmService类中函数的参数传递.有没有更好的方法来实现这一目标?

ios swift

5
推荐指数
1
解决办法
168
查看次数

如果我点击导航控制器中的菜单,如何在两个片段目的地之间传递数据?

我正在尝试使用导航控制器。我有一个底部导航视图。位于我的 MainActivity 上,它是使用以下代码启动的:

class MainActivity : AppCompatActivity() {

    lateinit var navController : NavController
    lateinit var logoHeaderImageView : ImageView
    var toolbarMenu : Menu? = null


    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        logoHeaderImageView = findViewById(R.id.header_lakuin_image_view)

        navController = Navigation.findNavController(this,R.id.nav_main_host_fragment)



        setupBottomNavMenu(navController)
        setupActionBar(navController)



    }

    fun setupBottomNavMenu(navController: NavController) {
        NavigationUI.setupWithNavController(bottom_navigation_view,navController)
    }

    fun setupActionBar(navController: NavController) {
        setSupportActionBar(main_activity_toolbar)
        main_activity_toolbar.title = ""


        val appBarConfiguration = AppBarConfiguration(
            setOf(
                // set some destination as the top hierarchy destination, to make the up button doesn't show.
                R.id.destination_home,
                R.id.destination_order,
                R.id.destination_favourite,
                R.id.destination_cart,
                R.id.destination_profile …
Run Code Online (Sandbox Code Playgroud)

android android-navigation android-architecture-components android-jetpack android-architecture-navigation

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

为什么我的片段没有显示在导航控制器中?

我是使用 Android 导航控制器的新手。

这是我的主要活动的 xml:

<androidx.constraintlayout.widget.ConstraintLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".Activities.MainActivity">

    <androidx.appcompat.widget.Toolbar
            android:id="@+id/main_activity_toolbar"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:background="?attr/colorPrimary"
            android:minHeight="?attr/actionBarSize"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            android:elevation="4dp" app:layout_constraintHorizontal_bias="0.0">
    </androidx.appcompat.widget.Toolbar>

    <fragment
            android:id="@+id/nav_main_host_fragment"
            android:layout_width="0dp"
            android:layout_height="0dp"
            app:layout_constraintBottom_toTopOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/main_activity_toolbar"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            android:name="androidx.navigation.fragment.NavHostFragment"
            app:navGraph="@navigation/main_graph"
            app:defaultNavHost="true"
    />

</androidx.constraintlayout.widget.ConstraintLayout>
Run Code Online (Sandbox Code Playgroud)

我的 kotlin 主要活动:

class MainActivity : AppCompatActivity(),NavController.OnDestinationChangedListener {
    lateinit var navController : NavController

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        navController = Navigation.findNavController(this,R.id.nav_main_host_fragment)
        navController.addOnDestinationChangedListener(this)

        setupActionBar()
    }

    override fun onDestinationChanged(
        controller: NavController,
        destination: NavDestination,
        arguments: Bundle?) {
    }

    private fun setupActionBar() {
        setSupportActionBar(main_activity_toolbar)
        supportActionBar?.title …
Run Code Online (Sandbox Code Playgroud)

android android-navigation android-architecture-components android-jetpack android-architecture-navigation

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

即使在使用导航 2.2.1 后仍然有错误没有当前导航节点

我曾尝试阅读此内容,但它并没有解决我的问题

所以我使用此代码导航到下一个目的地

 val nextDirection = CreateEventNameFragmentDirections.actionToCreateEventType(userKM, newEvent)
 findNavController().navigate(nextDirection)
Run Code Online (Sandbox Code Playgroud)

但它在我错误旋转设备后崩溃

java.lang.IllegalStateException: 没有当前导航节点

我用这个更新gradle

implementation 'android.arch.navigation:navigation-fragment-ktx:2.2.1'
implementation 'android.arch.navigation:navigation-ui-ktx:2.2.1'
Run Code Online (Sandbox Code Playgroud)

但它仍然不起作用,它仍然崩溃。我该怎么办 ?这是我的主要活动

class MainActivity : AppCompatActivity(), NavController.OnDestinationChangedListener {

    private lateinit var navController : NavController



    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)


        // Initial Setup views
        navController = Navigation.findNavController(this,R.id.nav_host_fragment)



        setupBottomNavMenu()
        setupActionBar()


        // Add Listeners
        navController.addOnDestinationChangedListener(this)




    }





    private fun setupBottomNavMenu() {
        bottom_nav.setupWithNavController(navController)
    }


    private fun setupActionBar() {

        generalToolbar.title = ""
        searchToolbar.title = ""
        searchWithBackButtonToolbar.title = ""

        // set up top hierarchy destination
        val appBarConfiguration …
Run Code Online (Sandbox Code Playgroud)

android android-navigation android-architecture-components android-architecture-navigation android-jetpack-navigation

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