Tôi mới phát triển Objective-C và iPhone, và tôi đang cố gắng lưu trữ các giá trị dấu phẩy động trong một NSMutableArray, nhưng khi tôi gặp lỗi "không tương thích gõ cho đối số 1 của 'addObject'. Tôi đang làm gì sai? Tôi đang cố gắng để tạo ra một mảng đôi mà tôi có thể thực hiện các phép tính toán với.Cách tạo một NSMutableArray của các giá trị dấu phẩy động
Trả lời
NSMutableArray chỉ giữ đối tượng, vì vậy bạn muốn một mảng được tải với các đối tượng NSNumber. Tạo mỗi NSNumber để giữ đôi của bạn sau đó thêm nó vào mảng của bạn. Có lẽ một cái gì đó như thế này.
NSMutableArray *array = [[NSMutableArray alloc] init];
NSNumber *num = [NSNumber numberWithFloat:10.0f];
[array addObject:num];
Lặp lại khi cần.
Sử dụng một NSNumber quấn phao của bạn, bởi vì các từ điển cần một đối tượng:
[myDictionary setObject:[NSNumber numberWithFloat:0.2f] forKey:@"theFloat"];
/* or */
[myDictionary setObject:@0.2f forKey:@"theFloat"];
lấy nó bằng cách gửi floatValue:
float theFloat = [[myDictionary objectForKey:@"theFloat"] floatValue];
Mã là chưa được kiểm tra.
Bạn cũng có thể bao gồm nhiều loại dữ liệu khác trong NSNumber, hãy kiểm tra documentation. Ngoài ra còn có NSValue cho một số cấu trúc như NSPoint và NSRect.
Trong Cocoa, NSMutableDictionary (và tất cả các bộ sưu tập, thực sự) yêu cầu đối tượng dưới dạng giá trị, vì vậy bạn không thể đơn giản vượt qua bất kỳ loại dữ liệu nào khác. Khi cả sjmulder và Ryan đề nghị, bạn có thể bọc các giá trị vô hướng của bạn trong các trường hợp của NSNumber (cho số) và NSValue cho các đối tượng khác.
Nếu bạn đang đại diện cho một số thập phân, cho một cái gì đó giống như một mức giá, tôi cũng khuyên bạn nên xem và sử dụng NSDecimalNumber. Sau đó, bạn có thể tránh các vấn đề không chính xác về điểm nổi và bạn thường có thể sử dụng và lưu trữ "giá trị" dưới dạng NSDecimalNumber thay vì đại diện cho nó bằng mã nguyên thủy.
Ví dụ:
// somewhere
NSDecimalNumber* price = [[NSDecimalNumber decimalNumberWithString:@"3.50"] retain];
NSMutableArray* prices= [[NSMutableArray array] retain];
// ...
[prices addObject:price];
NSMutableArray *muArray = [[NSMutableArray alloc] init];
NSNumber *float = [NSNumber numberWithFloat:210.0f];
NSNumber *float1 = [NSNumber numberWithFloat:211.0f];
[muArray addObject:float];
[muArray addObject:float1];
NSlog(@"my array is--%@",muArray);
Vui lòng giải thích câu trả lời của bạn – Gwenc37
- 1. Cách so sánh hiệu quả ký hiệu của hai giá trị dấu phẩy động trong khi xử lý các giá trị dấu phẩy động
- 2. Giá trị phân cách bằng dấu phẩy của DB2
- 3. Cách lấy các giá trị đặc biệt của dấu phẩy động trong CUDA?
- 4. MySQL dấu phẩy tách giá trị
- 5. định dạng chuỗi cho giá trị dấu phẩy động printf
- 6. Sử dụng cho giá trị điểm dấu phẩy động không?
- 7. Giá trị số bao gồm dấu phẩy - làm cách nào để tạo các số này?
- 8. xóa giá trị khỏi các giá trị được phân cách bằng dấu phẩy chuỗi
- 9. Thêm giá trị số nguyên vào giá trị dấu phẩy động trong Gforth
- 10. tách giá trị được phân cách bằng dấu phẩy
- 11. Làm thế nào để dấu phẩy tách các giá trị của một mảng để trưng bày
- 12. Python: eval() kết hợp các giá trị với dấu phẩy động?
- 13. Mẫu regex chấp nhận giá trị được phân tách bằng dấu phẩy hoặc dấu chấm phẩy
- 14. làm tròn một số dấu phẩy động đến giá trị số nguyên tiếp theo trong java
- 15. Đặt độ chính xác của tiêu chuẩn :: to_string khi chuyển đổi giá trị dấu phẩy động
- 16. Xóa dấu chấm và dấu phẩy khỏi các giá trị cột
- 17. Tham gia kết quả truy vấn đến một dòng duy nhất của các giá trị cách nhau bởi dấu phẩy
- 18. Nhiều giá trị cho một trường trong các giá trị được phân tách bằng dấu phẩy .csv định dạng
- 19. Lưu số dấu phẩy động vào một tệp
- 20. Regex thay thế tất cả dấu phẩy bằng giá trị
- 21. android numberpicker cho số dấu phẩy động
- 22. Cách đọc tệp khóa = giá trị và cách tách chuỗi được phân cách bằng dấu phẩy?
- 23. Tạo chuỗi phân cách bằng dấu phẩy C#?
- 24. Mục tiêu-C Cách đơn giản nhất để tạo chuỗi phân cách bằng dấu phẩy từ một mảng đối tượng
- 25. Làm cách nào để có thể in các giá trị dấu phẩy động mà không có định dạng mantissa/exponent?
- 26. Cách thay đổi giá trị của NSMutableArray tại một chỉ mục cụ thể
- 27. dấu phẩy JavaScript và đánh giá biến
- 28. Tạo dấu phẩy bằng MySQL?
- 29. Sửa số dấu phẩy động
- 30. Formatting giá như dấu phẩy tách
Sử dụng numberWithFloat nếu bạn không cần độ chính xác. –