我想这是非常基本的。
我从xCode收到两个相关的警告。两者都说我试图在没有强制转换的情况下从整数制作指针。我怎样才能满足xCode? p>
这是我的代码:
int tempCurrentPage = currentPageCounter;
[self tabAdd:@"New tab!" inColour:@"Red" withReference:tempCurrentPage];
注意:currentPageCounter是NSUInteger 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]];
}
我该怎么做演员?
答案 0 :(得分:3)
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);
答案 1 :(得分:2)
你正在传递指向整数的指针:
-(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];
答案 2 :(得分:1)
投放的广告素材应该是(int)
而不是(int*)
。当您记录newTabReference
时,请使用%d
而不是%@
进行记录。