久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

在目標 C 中進行比較 - ARC 不允許將“int"隱式

Comparing in objective C - Implicit conversion of #39;int#39; to #39;id#39; is disallowed with ARC(在目標 C 中進行比較 - ARC 不允許將“int隱式轉換為“id)
本文介紹了在目標 C 中進行比較 - ARC 不允許將“int"隱式轉換為“id"的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我在標有故障線"的行處收到錯誤ARC 不允許將 'int' 隱式轉換為 'id'".我想這與我正在檢查數組中的整數有關,該數組包含對象而不是整數.

I i'm getting the error "Implicit conversion of 'int' to 'id' is disallowed with ARC" at the line marked with "faulty line". I guess it have something to do with that i'm checking for an integer in an array, that contains objects instead of integers.

#import "RandomGenerator.h"

@implementation RandomGenerator

NSMutableArray *drawnNumbers;

-(int) randomNumber:(int)upperNumber {
    return arc4random_uniform(upperNumber);
}

-(NSMutableArray*) lotteryNumbers :(int)withMaximumDrawnNumbers :(int)andHighestNumber {
    for (int i = 1; i <= withMaximumDrawnNumbers; i++)
    {
        int drawnNumber = [self randomNumber:andHighestNumber];
        if ([drawnNumbers containsObject:drawnNumber]) {  //faulty line
            //foo
        }
    }
    return drawnNumbers;
}

@end

推薦答案

NSArrays 只能包含objective-c 對象.所以實際上 containsObject: 方法需要一個對象,而不是 int 或任何其他原始類型.

NSArrays can only contain objective-c objects. So actually the method containsObject: is expecting an object, not an int or any other primitive type.

如果你想在 NSArray 中存儲數字,你應該將它們打包到 NSNumber 對象中.

If you want to store number inside an NSArray you should pack them into NSNumber objects.

NSNumber *someNumber = [NSNumber numberWithInt:3];

在您的情況下,如果我們假設 drawNumbers 已經是一個 NSNumbers 數組,您應該將 randomNumber: 代更改為:

In your case, if we assume that drawnNumbers is already an array of NSNumbers, you should change the randomNumber: generation to:

-(NSNumber*) randomNumber:(int)upperNumber {
    return [NSNumber numberWithInt:arc4random_uniform(upperNumber)];
}

然后在 lotteryNumbers 方法中選擇它時,您應該:

And then when picking it up on the lotteryNumbers method, you should:

NSNumber *drawnNumber = [self randomNumber:andHighestNumber];

另一個注意事項是您為 lotteryNumbers 定義的方法.你用了一個很奇怪的名字,我想你誤解了方法命名在objective-c中是如何工作的.您可能正在尋找類似的東西:

Another note would go for the method you defined for lotteryNumbers. You used a really strange name for it, I think you misunderstood how the method naming works in objective-c. You were probably looking for something more like:

-(NSMutableArray*) lotteryNumbersWithMaximumDrawnNumbers:(int)maximumDrawnNumbers andHighestNumber:(int)highestNumber;

后期

Objective-C 現在允許使用更緊湊的語法來創建 NSNumber.你可以這樣做:

Objective-C now allows a way more compact syntax for creating NSNumbers. You can do it like:

NSNumber *someNumber = @(3);

你的方法可以改寫為:

-(NSNumber*) randomNumber:(int)upperNumber {
    return @(arc4random_uniform(upperNumber));
}

這篇關于在目標 C 中進行比較 - ARC 不允許將“int"隱式轉換為“id"的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

Stop a UITableView from automatically scrolling(阻止 UITableView 自動滾動)
iOS UIScrollView Lazy Loading(iOS UIScrollView 延遲加載)
using iOS 6.0 SDK and building for iOS 5 Target causes UIScrollView setMinimumZoomScale to fail when running on iOS 5 simulator(在 iOS 5 模擬器上運行時,使用 iOS 6.0 SDK 并為 iOS 5 Target 構建會導致 UIScrollView setMinimumZ
Create partial-screen UIPageViewController programmatically(以編程方式創建部分屏幕 UIPageViewController)
how to make an ImageView zoomable with or without ScrollView.?(如何使用或不使用 ScrollView 使 ImageView 可縮放?)
UIImageView zoom and pinch in UIScrollView(UIImageView 在 UIScrollView 中縮放和捏合)
主站蜘蛛池模板: 国产伦精品一区二区三区在线 | 91极品欧美视频 | 国产高清精品一区二区三区 | 成人精品免费视频 | 成人在线中文字幕 | 欧美一级做a爰片免费视频 国产美女特级嫩嫩嫩bbb片 | 成人免费视频 | 国产精品激情 | 午夜免费av | 日本久久综合网 | 野狼在线社区2017入口 | 久久aⅴ乱码一区二区三区 91综合网 | 日韩伦理电影免费在线观看 | 亚洲一区二区视频 | 国产精品久久免费观看 | 91精品国产91久久久久久丝袜 | 91欧美精品成人综合在线观看 | 欧美精品久久久 | 在线免费视频一区 | 国产一区久久精品 | 国产 日韩 欧美 中文 在线播放 | 色嗨嗨 | 一区视频 | 精品国产精品国产偷麻豆 | 久久久国产精品视频 | 国产日韩欧美一区二区在线播放 | 国产精品国产精品 | 午夜精| 国户精品久久久久久久久久久不卡 | 日韩一区精品 | 欧美在线一区二区三区四区 | 在线免费观看a级片 | 日韩三| 国产精品久久久久一区二区三区 | 免费一区 | 一级大片免费 | 日本在线中文 | 亚洲视频手机在线 | 欧美色性 | 成年人免费看的视频 | 91黄色免费看 |