0

ボタンのグループがあるiOS SDKでプログラムを作成しています。ボタンをクリックすると、そのタイトルが配列に追加され、割り当てられたラベルに配列が表示されます。

削除ボタンとクリア ボタンを作成しようとすると、エラー メッセージが表示されます。それらは function_builder = function_builder.removeLastObject; に表示されます。そして function_builder = function_builder.removeAllObjects; .m ファイルの行。エラー メッセージは同じです: 互換性のない型 'void' から 'NSMutableArray *_strong' に割り当てています。これを修正するにはどうすればよいですか? 助けてくれてありがとう

.h ファイルは次のとおりです。

#import <UIKit/UIKit.h>

@interface SecondViewController : UIViewController
@property (nonatomic,strong) IBOutlet UILabel *equation_field;
@property (nonatomic) NSMutableArray *function_builder;//declare array//
@property(nonatomic, readonly, retain) NSString *currentTitle;//declare button titles//
@end

.m ファイルは次のとおりです。

#import "SecondViewController.h"

@interface SecondViewController ()

@end

@implementation SecondViewController
@synthesize equation_field;
@synthesize currentTitle;
@synthesize function_builder;
NSMutableArray *function_builder;//create the array name//

- (IBAction)functionButtonPress:(UIButton *)sender {//code for all buttons except delete    and clear//
[function_builder addObject: sender.currentTitle];//when button is pressed, its title is added to the array//
self.equation_field.text = function_builder.description;//the contents of the array appear in the assigned label//
}
- (IBAction)delete:(UIButton *)sender {//create delete button//
function_builder = function_builder.removeLastObject; //ERROR OCCURRING HERE: Assigning to 'NSMutableArray *_strong' from incompatible type 'void'//
}

- (IBAction)clear:(UIButton *)sender{//create clear button//
function_builder = function_builder.removeAllObjects;//ERROR OCCURRING HERE: Assigning to 'NSMutableArray *_strong' from incompatible type 'void'//
}



- (void)viewDidLoad {

function_builder = [[NSMutableArray alloc] init];//initialize array//



[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}

- (void)viewDidUnload
{
[super viewDidUnload];
// Release any retained subviews of the main view.
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
    return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
} else {
    return YES;
}
}

@end
4

2 に答える 2

0

それが xCode/objective-c が配列を文字列に変換する方法だと思います (間違っている場合は訂正してください)。したがって、別の形式にしたい場合は、文字列を反復処理して括弧とコンマを削除する必要があります。正直なところ、それほど難しいことではありません。

私が行う方法は、文字列を読み取って、( ) または でない限り内容をコピーすることです。そうすれば、間隔は依然として正しく、必要なフィルタリング効果が得られます。

于 2012-07-12T16:42:06.343 に答える
0

そこに多くのエラーがあります..

このメソッド (void*) の結果を、種類が NSMutableArray の function_builder に割り当てました。それは意味がありません。

オブジェクトを操作するには、オブジェクトにメッセージを送信するだけです:

[function_builder removeLastObject]; // this will remove the last object of the array
[function_builder removeAllObjects]; // guess what ;)

他のことについて:

self.equation_field.text = [function_builder componentsJoinedByString:@", "]

これにより、配列内のすべてのオブジェクトが「、」で区切られた文字列が作成されます =>A, B, C, D

于 2012-07-12T16:47:12.797 に答える