objective-cを勉強中なのですが、分からない所があります。
(1)作成したリストを、ボタンを押すたびに一つずつランダムに選んでラベルに表示させる
(2)同時に、選んだものはリストから削除していく
(3)全て(下記の場合は5つ)選び終わったら、リストを完全に復活させる
というメソッドを作りたいのですが、(3)の段階を上手く記述できません。
具体的には、if文の条件を上手く設定できません。
どなたかアドバイスを頂けないでしょうか。
以上、何卒宜しくお願い致します。
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
_lists = [NSMutableArray arrayWithObjects:@"apple",@"bear",@"hand",@"foot",@"sun", nil];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (IBAction)btRandom:(id)sender {
if (_lists > 0) {
self.lbLabel.text = nil;
// listからインデックス番号をランダムに選択
unsigned int erabu = arc4random_uniform(_lists.count);
NSLog(@"1:%d", erabu);
// listからランダムに選択したものを抜き出して文字データにする
NSString *nukidasi = [_lists objectAtIndex:erabu];
NSLog(@"2:%@", nukidasi);
// ラベルに出力する
self.lbLabel.text = nukidasi;
// listからランダムに選択して抜き出したもの(erabu)をlistから削除
[_lists removeObjectAtIndex:erabu];
NSLog(@"%@", _lists);
}else if (_lists < 0){
_lists = [NSMutableArrayarrayWithObjects:@"apple",@"bear",@"hand",@"foot",@"sun", nil];
}
}
No.1ベストアンサー
- 回答日時:
下から5行目:
}else if (_lists < 0){
変数_listsは、(NSMutableArray *)型のクラスインスタンスを代入しています。(ふつうは、クラスインスタンスなどとごていねいな表現はせず、ただインスタンスとだけ呼びます)
見てのとおりインスタンスはC言語のポインタの形をしているので、その実体は符号なしの整数型です。なので、「_lists < 0」という整数0との比較演算が成り立ちます。おそらくコンパイラの警告も出ていないのではないでしょうか?
くり返しますが、ポインタは「符号なしの整数型」なので、負数すなわち0より小さくなることはありません。「_lists < 0」が真になることはぜったいにありません。よって、以降のコードが実行されることもありません。
_list.count < 1
あなたの気持ちは、こう書きたかったのではありませんか?
プロパティcountがなにかは、クラスリファレンスでお調べを。
蛇足:
23行目:
self.lbLabel.text = nil;
できないことはないけど、ふつうはこういうことはしません。
self.iblabel.text = @"";
空行を入れておきます。
そもそもこういう「初期化」自体、不用なんですけどね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP ファイルの書き込みについて教えて下さい。 1 2023/03/20 12:01
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
- Visual Basic(VBA) ユーザーフォームの表示を追加したい 2 2023/03/26 23:18
- 英語 reason + that 1 2022/11/22 22:22
- PHP style.cssのjQuery条件付きcssが機能しない 4 2022/07/17 18:27
- Excel(エクセル) エクセルの数式で教えてください。 3 2022/10/25 10:52
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- JavaScript セレクトボックスで配列を呼び出したい。 1 2022/07/08 20:14
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
楽しくて最高のプログラミング...
-
小学1年生の子です。塾に行かせ...
-
プログラミング
-
vba クリップボードクリアにつ...
-
ラズパイpico PIOモード
-
IT業界より楽に稼げる業界って...
-
pythonにてseleniumを使うも、...
-
プログラミング ソースコード
-
pythonで複数画像からgifを作る...
-
正規表現で複数マッチ条件で悩...
-
そのまま使っただけなのに・・...
-
Gitについて質問。 クローンし...
-
rpa化する言語としてら何があり...
-
httpリクエストの送り元の特定
-
プログラミングで例えばゲーム...
-
このURLで広告を出しているのは...
-
Pythonでgif画像が上手く作れない
-
windowsでテキストファイルの各...
-
Webサイト内に埋め込んだmp4動...
-
Pythonって何を意識した言語な...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
chatGPTで次々と質問をしていく...
-
昔のパソコン少年の武勇伝「店...
-
スカラーのベクトル微分
-
ハッシュテーブル(連想配列)が...
-
最新のプログラム言語を学ぶに...
-
pythonにてseleniumを使うも、...
-
Windowsのアプリ開発ってなんの...
-
vba クリップボードクリアにつ...
-
Google ColaboでGUI作成
-
sublimit textっていうエディタ...
-
フリーランスのエンジニアって...
-
ExcelVBAでFormulaR1C1を列範囲...
-
matplotlibで任意の角度の円弧...
-
そのまま使っただけなのに・・...
-
家庭のパソコンで Python の 環...
-
初心者powershellのPS1ファイル...
-
Webプログラムってネイティブア...
-
httpリクエストの送り元の特定
-
プログラミングで例えばゲーム...
-
rpa化する言語としてら何があり...
おすすめ情報