請求書を生成するアプリ(私の最初)を作成しようとしています。もともと私の考えは、次のクラスを持つことでした。
- ユーザー(以下のすべてのアプリケーションデータが属する)
- 顧客(請求先:名前、会社名、請求先住所、電話番号など)
- タスク(請求書の項目:名前、説明、HourlyRateなど...)
- 請求書(顧客と複数のタスクで構成される最終出力)
ユーザーに「新しい顧客の追加」を選択させることができると思いました。これにより、Customerオブジェクトが作成され、そのオブジェクトが顧客配列に格納されます。「新しいタスクの追加」と同じことです。これにより、タスクオブジェクトが作成され、タスク配列に追加されます。次に、customer配列の特定の値とtasks配列の複数のタスクを指すInvoiceオブジェクトを作成できます。
私が遭遇している問題は、誰かが「新しい顧客の追加」または「新しいタスクの追加」を押すたびに新しいオブジェクトを作成する方法がわからないことです。私はこのようなことをしようとしました:
Customer *customer = [[Customer alloc] init];
[customer setName:@"John Doe"];
[customer setCompanyName:@"John's Swimming Pools"];
[user1 addCustomer:customer];
[customer setName:@"Jane Smith"];
[customer setCompanyName:@"Cupcakes by Jane"];
[user1 addCustomer:customer];
for (int i = 0; i < [[user1 customers] count]; i++) {
NSLog(@"%@",[[[user1 customers] objectAtIndex:i] name]);
}
顧客へのポインタがJaneで上書きされているため、これが機能しないことに気付きました。配列が出力されると、両方の値が「JaneSmith」と表示されます。
ユーザーが顧客/タスクを追加することを決定するたびに、オブジェクトへの新しいポインターを作成するにはどうすればよいですか?それとも、これはすべて間違っているので、クラスではなくすべてに配列を使用する必要がありますか?これは非常に基本的なOOPであり、頭を包むのに苦労しているように感じます。どんな助けでも大歓迎です、ありがとう!