Objective-C.无法实例化对象

Objective-C.无法实例化对象,objective-c,Objective C,我最近开始了我的Objective-C之旅 在我的类KGApp中,我有一个方法-(void)createArrayOfKGAppQuotes。在这种方法中: 我将引用和作者的长字符串拆分为quotesArrayTemp 然后我做循环 我将每个引用及其作者拆分,并将其放置到tempQuoteArray 然后,我尝试将对象addObject添加到属性quotesArray,该属性通过分别使用两个NSString的初始值设定项实例化此对象来保存KGQuote对象 -(void)createArrayO

我最近开始了我的Objective-C之旅

在我的类KGApp中,我有一个方法
-(void)createArrayOfKGAppQuotes
。在这种方法中:

  • 我将引用和作者的长字符串拆分为
    quotesArrayTemp
  • 然后我做循环
  • 我将每个引用及其作者拆分,并将其放置到
    tempQuoteArray
  • 然后,我尝试将对象
    addObject
    添加到属性
    quotesArray
    ,该属性通过分别使用两个NSString的初始值设定项实例化此对象来保存KGQuote对象
  • -(void)createArrayOfKGAppQuotes{
    NSArray*quotesArrayTemp=[self.stringOfQuotes组件由字符串分隔:@“\n”];
    for(NSString*quotesArrayTemp中的quote){
    NSArray*tempQuoteArray=[引用由字符串分隔的组件:@”/“];
    [self.quotesArray addObject:[KGQuote alloc]initWithQuote:[tempQuoteArray objectAtIndex:0]和withauthor:[tempQuoteArray objectAtIndex:1]];
    }
    }
    
    我确信正在填充
    tempQuoteArray
    ,它包含NSString。但是
    quotesArray
    返回为零


    非常感谢您的帮助。

    添加
    NSLog()
    以查看值。如果有一些内容为nil、empty等,如果愿意,您可以使用debugguer和断点,但通常在我们开始时,我们更喜欢打印。嘿,感谢您的回复。我已经在代码中添加了NSLogs。当我为quotesArrayTemp做NSLog时,它的所有内容都按预期工作,并打印元素。当我在for循环中为quotesArray执行NSLog时,它返回为nil在某个点。
    KGQuote*quote=[self.quotesArray objectAtIndex:0];NSString*作者=[引用作者],或使用强制转换:
    NSString*author=[(KGQuote*)[self.quotesArray objectAtIndex:0]author]完全正确。您声明了它,但没有初始化它。假设您需要对其进行自定义初始化,等等。这里是一个数组,但如果您有一个UIViewController,如果您想从xib、另一个自定义xib、情节提要等初始化它,则需要提供其初始化
    
    -(void)createArrayOfKGAppQuotes {
    
        NSArray<NSString *> *quotesArrayTemp = [self.stringOfQuotes componentsSeparatedByString:@"\n"];
        
        for (NSString *quote in quotesArrayTemp) {
            NSArray *tempQuoteArray = [quote componentsSeparatedByString:@"/"];
            
            [self.quotesArray addObject:[[KGQuote alloc] initWithQuote:[tempQuoteArray objectAtIndex:0] andWithAuthor:[tempQuoteArray objectAtIndex:1]]];
        }
    }