小编cta*_*art的帖子

目标C中的泄漏方法

我正在研究Stephen Kochan在Objective-C中的编程(这是为了承认我是一个完全的初学者).

我目前的程序是分数计算器.我有加,减,乘和除法.乐器告诉我他们都在泄漏(只是一点点,但它是一个很小的程序.)

这是减法方法的定义(其余的遵循非常相似的形式):

-(Fraction *)   subtract: (Fraction *) f;
{
    Fraction    *result = [[Fraction alloc] init];
    int         resultNum, resultDenom;

    resultNum = numerator * f.denominator - f.numerator * denominator;
    resultDenom = denominator * f.denominator;

    [result setTo: resultNum over: resultDenom];

    return result;
    [result release];
}
Run Code Online (Sandbox Code Playgroud)

想堵塞泄漏?提前谢谢.

此外,我四处寻找网站上的另一个解释,但遗憾的是,我认为没有其他人问过任何这么基本的问题.

methods memory-leaks objective-c

3
推荐指数
1
解决办法
200
查看次数

方法创建一个包含11个对象的数组,全部超出范围,无法识别的选择器结果

好的,我正在做一个简单的查找.我有一个NSString对象数组和一个在数组元素中搜索的字符串.

这一切似乎都有效,直到我尝试将一个匹配添加到一个新的可变数组来保存搜索结果.stringHolder变量获取字符串,resultsCollectorArray甚至获得正确数量的新元素,但每个元素都是空的并且"超出范围".这是方法:

@implementation NSArray (checkForString)

-(NSMutableArray *) checkForString: (NSString *) matchSought
{
    long unsigned numberofArrayElements;
    long unsigned loop = 0;
    NSRange searchResults;
    NSMutableArray * resultCollectorArray = [[NSMutableSet alloc] init];
    id stringHolder;

    numberofArrayElements = [self count];

    while (loop < numberofArrayElements) {
        searchResults.length = 0;
        searchResults = [[self objectAtIndex: loop] rangeOfString: matchSought options:NSCaseInsensitiveSearch];
        if (searchResults.length > 0) {
            stringHolder = [self objectAtIndex: loop];
            [resultCollectorArray addObject: stringHolder];
        }
        loop++;
    }

    return [resultCollectorArray autorelease];

}
Run Code Online (Sandbox Code Playgroud)

一旦我们回到程序的主要部分,我得到一个无法识别的选择器发送到应该接收该方法结果的可变数组.这是主要部分:

#import <Foundation/Foundation.h>
#import "LookupInArray.h"

int main (int argc, …
Run Code Online (Sandbox Code Playgroud)

objective-c unrecognized-selector

3
推荐指数
1
解决办法
166
查看次数