Iphone 铸造问题(或者更确切地说,不铸造)

Iphone 铸造问题(或者更确切地说,不铸造),iphone,objective-c,cocoa-touch,casting,Iphone,Objective C,Cocoa Touch,Casting,我想这是非常基本的 我从xCode得到两个相关的警告。两者都说我正在尝试从整数生成一个指针,而不使用强制转换。如何满足xCode的要求 这是我的代码: int tempCurrentPage = currentPageCounter; [self tabAdd:@"New tab!" inColour:@"Red" withReference:tempCurrentPage]; 注:currentPageCounter是一个整数currentPageCounter 我的方法如下所示: -(vo

我想这是非常基本的

我从xCode得到两个相关的警告。两者都说我正在尝试从整数生成一个指针,而不使用强制转换。如何满足xCode的要求

这是我的代码:

int tempCurrentPage = currentPageCounter;
[self tabAdd:@"New tab!" inColour:@"Red" withReference:tempCurrentPage];
注:currentPageCounter是一个
整数currentPageCounter

我的方法如下所示:

-(void)tabAdd:(NSString *)newTabTitle inColour:(NSString *)newTabColour withReference:(int *)newTabReference
{

    NSLog(@"#string about to be added:%@", newTabTitle);
    [[[self.myLibrary objectAtIndex:currentBookNumber] tabTitles] addObject:newTabTitle];

    NSLog(@"#string about to be added:%@", newTabColour);
    [[[self.myLibrary objectAtIndex:currentBookNumber] tabColours] addObject:newTabColour];

    NSLog(@"#string about to be added:%@", newTabReference);
    [[[self.myLibrary objectAtIndex:currentBookNumber] tabReference] addObject:[NSNumber numberWithInteger:newTabReference]];       

}

我该怎么做演员

withReference
需要一个
int*
,但您正在传递一个
int
。这是一个潜在的错误,可能会使您的程序崩溃。似乎在方法中不需要指向整数的指针,只需传递一个整数即可

// remove the pointer for newTabRefenerce
-(void)tabAdd:(NSString *)newTabTitle inColour:(NSString *)newTabColour withReference:(int)newTabReference

// newTabReference is integer, do use %d. %@ is for NSString
NSLog(@"#string about to be added:%d", newTabReference);

withReference
需要一个
int*
,但您正在传递一个
int
。这是一个潜在的错误,可能会使您的程序崩溃。似乎在方法中不需要指向整数的指针,只需传递一个整数即可

// remove the pointer for newTabRefenerce
-(void)tabAdd:(NSString *)newTabTitle inColour:(NSString *)newTabColour withReference:(int)newTabReference

// newTabReference is integer, do use %d. %@ is for NSString
NSLog(@"#string about to be added:%d", newTabReference);

您正在传递指向以下位置的整数的指针:

-(void)tabAdd:(NSString *)newTabTitle inColour:(NSString *)newTabColour withReference:(int *)newTabReference
将此更改为:

-(void)tabAdd:(NSString *)newTabTitle inColour:(NSString *)newTabColour withReference:(NSUInteger)newTabReference
在选择器调用中,直接传递currentPageCounter:

[self tabAdd:@"New tab!" inColour:@"Red" withReference:currentPageCounter];

您正在传递指向以下位置的整数的指针:

-(void)tabAdd:(NSString *)newTabTitle inColour:(NSString *)newTabColour withReference:(int *)newTabReference
将此更改为:

-(void)tabAdd:(NSString *)newTabTitle inColour:(NSString *)newTabColour withReference:(NSUInteger)newTabReference
在选择器调用中,直接传递currentPageCounter:

[self tabAdd:@"New tab!" inColour:@"Red" withReference:currentPageCounter];

传入的强制转换应该是
(int)
,而不是
(int*)
。当您记录
newabreference
时,使用
%d
而不是
%@

记录,传入的强制转换应该是
(int)
而不是
(int*)
。当您记录
newabreference
时,使用
%d
而不是
%@
记录它