小编All*_*ian的帖子

如何在 iOS 14 (Xcode 12 Beta) 中从 UIKit 生命周期转换为 SwiftUI 生命周期

我目前正在开发我正在使用的 SwiftUI 应用程序SceneDelegateAppDelegate. 我想知道我可以在生命周期的转换UIKitSwiftUI一个地方有一个App结构,并用scenes等。

另外我想知道如何满足 CoreData 和 PersistentContainers 并将它们注入我们的环境。

我也曾经UIApplicationDelegateAdapter注射过,AppDelegate@main它给了我错误

'main()' 仅在 iOS 14.0 或更新版本中可用

@available (iOS 14.0, *)在开始时使用:

import SwiftUI

@available(iOS 14.0, *)
@main

struct MyApp: App {

    @UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate
    let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
    
    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这样做,SceneDelegate代码去哪儿了。我仍然很困惑这种转换是如何进行的。我还没有看到 Apple 在他们的会议或任何事情中谈论过这个问题。帮助将不胜感激。

ios appdelegate swiftui xcode12

11
推荐指数
2
解决办法
3023
查看次数

SwiftUI:是否存在修饰符来突出显示 Text() 视图的子字符串?

我在屏幕上有一些文字:

Text("someText1")
Run Code Online (Sandbox Code Playgroud)

是否可以在不创建大量文本项目的情况下突出显示/选择部分文本

我的意思是

Text("som") + Text("eTex").foregroundColor(.red) + Text("t1")
Run Code Online (Sandbox Code Playgroud)

不是我的解决方案

最好有某种修饰符以某种方式突出显示文本的一部分。类似于:

Text("someText1").modifier(.highlight(text:"eTex"))
Run Code Online (Sandbox Code Playgroud)

是否可以?(我的意思是没有创造很多观点)

swift swiftui

10
推荐指数
3
解决办法
3877
查看次数

在coreData xcode iphone中创建一个复合谓词

我正在研究核心数据与3个实体(班级,学生,ExamRecord)及其关系区域:

Class<------>> Students <------> ExamRecord
Run Code Online (Sandbox Code Playgroud)

我创建了一个谓词,用于获取第5课的学生列表.

NSString * fmt2 = @"studentsToClass.className=%@";
NSPredicate * p2 = [NSPredicate predicateWithFormat:fmt2,@"5th",nil];
Run Code Online (Sandbox Code Playgroud)

有了这个,我得到了所有第5班的学生

现在我还想对学生提取的另一个过滤器.

获取考试记录"结果"为"通过"的学生.result是ExamResult实体中学生的属性

我如何在此使用复合谓词?

如果我错了,请纠正我

任何帮助将不胜感激

谢谢

iphone core-data nspredicate ios

8
推荐指数
1
解决办法
1万
查看次数

从Apple示例"创建块"中阻止语法错误

使用来自docs的apple示例

float (^oneFrom)(float);


oneFrom = ^(float aFloat) {

  float result = aFloat - 1.0;

  return result;

};
Run Code Online (Sandbox Code Playgroud)

我收到两个错误:

  1. 使用不同类型重新定义'oneFrom':'int'vs'float(^)(float)'
  2. 类型说明符缺失,默认为'int'

也来自doc ..

如果没有显式声明块表达式的返回值,则可以从块的内容中自动推断出它.如果推断返回类型并且参数列表为void,那么您也可以省略(void)参数列表.如果或当存在多个return语句时,它们必须完全匹配(必要时使用cast).

objective-c objective-c-blocks

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

向路径添加组件 - 目标C.

我有一个网址说:www.gmail.com/index.php.我也有三个不同的字符串说aa,bbcc.我想将三个单独的字符串附加到url,以便在Objective C中获得组合url,即我想要的www.gmail.com/index.php/aa/bb/cc.有人可以帮我吗 ??我是客观C的新手.谢谢.

iphone xcode objective-c ipad ios

5
推荐指数
2
解决办法
5195
查看次数

NSPredicate 使用正则表达式检查字母数字

我想在 Objective c 中使用正则表达式检查字符串。我的代码

NSString *regexAmazonOrder =@"[a-zA-Z0-9]*";
NSPredicate *predicateAmazonOrder = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regexAmazonOrder];

if([predicateAmazonOrder evaluateWithObject:cardNumber.text])
{
    NSLog(@"Its coming inside AMAZON ORDER EVALUATIONS");
    ...
}
Run Code Online (Sandbox Code Playgroud)

但它不起作用。帮帮我。我知道这很简单,但是却让我心碎!!!谢谢

regex objective-c nspredicate

5
推荐指数
2
解决办法
3634
查看次数

NSPredicate限制结果

我试图限制对象数组,以[NSArray filteredArrayUsingPredicate]获得更好的性能.

我的代码:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF.Name contains[c] %@", searchText]; 
NSArray *filteredArray = [self.dataArray filteredArrayUsingPredicate:predicate];
Run Code Online (Sandbox Code Playgroud)

dataArray包含大约30.000个对象,我想限制结果数组50.(我发现50匹配后我需要一些break语句.)我怎样才能实现这个目标?

iphone core-data objective-c ios

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

如何删除我添加到navigationcontroller视图的视图?

所以我的导航控制器中有一个设置栏按钮项,当从家庭视图控制器按下时,会在家庭视图上打开设置vc透明视图,因此家庭vc仍然可以在设置vc后面看到.我希望导航栏仍然显示,所以在"HomeViewController.h"中我有以下代码:

-(IBAction)settingsButtonPressed:(id)sender{
    SettingsViewController *settings = [[SettingsViewController alloc]init];
    [self.navigationController.view addSubview:settings.view];
}
Run Code Online (Sandbox Code Playgroud)

当我想删除设置视图时,在"SettingsViewController"中我尝试了:

-(IBAction)exitSettings:(id)sender{
    [self.navigationController.view removeFromSuperview];
}
Run Code Online (Sandbox Code Playgroud)

但是,当我这样做并尝试运行程序时,程序停止,而在调试区域,它只是说

Thread 1: EXC_BAD_ACCESS (code = 2, address=0xb0000008)
(lldb)
Run Code Online (Sandbox Code Playgroud)

我做错了什么,如何解决这个问题?

view uinavigationcontroller ios

2
推荐指数
1
解决办法
2402
查看次数

如何避免NSMutableArray中的重复字典对象

嗨,在我的一个应用程序中,我有一个包含一组NSMutableDictionary对象的数组.字典对象有三个键值对,如下所示

  1. 公司
  2. 产品
  3. 数量

并且阵列具有许多对象.现在,通过使用不同的添加按钮,我将这些字典对象添加到数组中.即使在向数组添加对象时,我也在使用NSNotFound方法检查是否有任何重复对象可用.如下

if([Array indexOfObject:dicObject] == NSNotFound)
{  
        [Array addObject:dicObject];
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下它在少数情况下工作正常,但它在其他情况下不起作用.我将用一个例子解释:

  1. 例如,我在阵列中有一个带有以下键值对的dicobject

    company:XYZ Product:ABC Quantity:2

现在,例如,我想添加一个具有相同上述键值对的dic对象.那个时候显然它不会添加,因为已经有相同的产品在阵列中可用.

这是有效的条件.

例外情况:例如,我想添加一个具有以下值的产品

Company:XYZ    Product:ABC   Quantity:6
Run Code Online (Sandbox Code Playgroud)

在这种情况下,此产品将添加到阵列中,没有任何错误.但我担心的是我不想再将数据添加到数组中,只需要更新数量,因为公司和产品名称都是相同的.那么请告诉我处理这种情况的方法.

iphone objective-c

2
推荐指数
1
解决办法
1246
查看次数

Swift 3:在不知道indexPath的情况下从数组中删除特定的字符串?

我有一个UICollectionView有一堆单元格.当我选择这些单元格时,它们会改变颜色,看起来好像已经明确选择了,我将hashtag.hashtag_name(String)附加到我的hashtagsArray.如果我点击一个类别(时尚,食物,爱好或音乐),我会将另一个数组附加到该索引路径,以便为用户提供该特定类别的单元格,如下图所示.

我想要的是,如果我将已经SELECTED的单元格点击为UNSELECT它,那么hashtag.hashtag_name将从我的hashtagArray中删除.问题是,当我将其添加到hashtagArray中时,我添加的数组的indexPath与数组indexPath完全不同,因此我无法通过调用将其删除self.hashtagArray.remove(Int).这是我的代码......

图像示例

import UIKit

class Hashtag: NSObject {

    var hashtag_name: String?
    var hashtag_color: String?
}

import UIKit

private let reuseIdentifier = "Cell"

class HashtagView: UICollectionViewController, UICollectionViewDelegateFlowLayout {

    var hashtagArray: [String] = []

    var categoriesArray = [Hashtag]()

    var fashionArray = [Hashtag]()
    var isFashionSelected: Bool = false
    var fashionArrayCount: [Int] = []

    override func viewDidLoad() {
        super.viewDidLoad()

        self.navigationController?.navigationBar.tintColor = .white
        navigationItem.title = "Hashtag"

        self.collectionView?.backgroundColor = .white
        self.collectionView?.register(HashtagCell.self, forCellWithReuseIdentifier: reuseIdentifier)
        self.collectionView?.contentInset = UIEdgeInsetsMake(10, 0, 0, 0)

        handleFetchCategories()
        handleFetchFashionHashtags()
    }

    func insertCategoryAtIndexPath(element: …
Run Code Online (Sandbox Code Playgroud)

arrays uicollectionview uicollectionviewcell swift swift3

2
推荐指数
1
解决办法
3290
查看次数