Tôi đã cố kiểm tra xem NSInteger có lẻ hay không. Tôi đã tìm thấy một cách để làm điều đó bằng cách sử dụng C nhưng nó không làm việc với Objective-C. Làm thế nào tôi sẽ làm điều này?Kiểm tra xem NSInteger có lẻ hay thậm chí
Trả lời
NSInteger
được định nghĩa là int
(hoặc long
trên một số môi trường). Vì vậy, việc kiểm tra tính kỳ quặc giống như đối với đồng bằng int:
NSInteger num;
if (num % 2)
// odd
else
// even
NSInteger n = 5;
NSLog(@"%s", n & 1 ? "odd" : "even");
hoặc sử dụng nếu
if (n & 1) {
; // odd
} else {
; // even
}
với một số đầu ra:
if (n & 1) {
NSLog(@"odd");
} else {
NSLog(@"even");
}
ví dụ con trỏ:
NSInteger x = 7;
NSInteger *y = &x;
if (*y & 1) {
NSLog(@"odd");
} else {
NSLog(@"even");
}
Theo như tôi biết. NSInteger
, không giống như NSNumber
, chỉ là một typeder cho một loại nguyên thực dọc theo dòng:
typedef long NSInteger;
Vì vậy, bạn sẽ có thể làm:
NSInteger nsintvar = 77;
if ((nsintvar % 2) == 0) {
// number is even
} else {
// number is odd
}
Dưới đây là một chương trình hoàn chỉnh, biên soạn dưới Cygwin với GNUstep, minh họa điều này:
#import <stdio.h>
#import <Foundation/NSObject.h>
int main(int argc, const char *argv[]) {
NSInteger num;
for (num = 0; num < 20; num++) {
if ((num % 2) == 0) {
printf ("%d is even\n", num);
} else {
printf ("%d is odd\n", num);
}
}
return 0;
}
Kết quả đầu ra:
0 is even
1 is odd
2 is even
3 is odd
4 is even
5 is odd
6 is even
7 is odd
8 is even
9 is odd
10 is even
11 is odd
12 is even
13 is odd
14 is even
15 is odd
16 is even
17 is odd
18 is even
19 is odd
Dường như không hoạt động. http://cl.ly/Zdg – Joshua
Bạn có chắc là bạn khai báo biến là NSInteger không? Tôi chỉ từng thấy vấn đề đó ("Toán hạng không hợp lệ cho nhị phân X", trong đó X là toán tử C hợp lệ) khi bạn khai báo biến là NSInteger * (con trỏ thay vì số nguyên thực). Hãy thử chương trình hoàn toàn có trong bản chỉnh sửa của tôi. – paxdiablo
Tôi nghĩ câu trả lời này là tốt nhất. '((nsintvar% 2) == 0)' ngắn gọn hơn; không trộn các kiểu bool và integer. – capikaw
Các câu trả lời khác sẽ hoạt động. Có lẽ đó là một vấn đề với makefile của bạn hoặc một cái gì đó. Hãy suy nghĩ bên ngoài đoạn mã đó.
Nếu mọi thứ khác không thành công, hãy khai báo số nguyên là int. Bạn không phải khai báo nó là NSInteger.
Sử dụng toán tử "%". Về cơ bản, nó hoạt động phần còn lại khi bạn chia một số. Vì vậy:
số% 2
Sẽ là = 0 nếu số thậm chí là số chẵn chia cho 2 không có phần dư. Nếu nó không = 0, nó phải là lẻ.
NSArray *arrayTotal = [NSArray arrayWithObjects:@"A", nil];
// NSArray *arrayTotal = [NSArray arrayWithObjects:@"A", @"B", nil];
// NSArray *arrayTotal = [NSArray arrayWithObjects:@"A", @"B", @"C", nil];
// NSArray *arrayTotal = [NSArray arrayWithObjects:@"A", @"B", @"C", @"D", nil];
// NSArray *arrayTotal = [NSArray arrayWithObjects:@"A", @"B", @"C", @"D", @"E", nil];
NSArray *arrLeft;
NSArray *arrRight;
NSRange range;
range.location = 0;
range.length = ([arrayTotal count] % 2) ? ([arrayTotal count]/2) + 1 : ([arrayTotal count]/2);
arrLeft = [arrayTotal subarrayWithRange:range];
range.location = range.length;
range.length = [arrayTotal count] - range.length;
arrRight = [arrayTotal subarrayWithRange:range];
NSLog(@"Objects: %lu", (unsigned long)[arrLeft count]);
NSLog(@"%@", [arrLeft description]);
NSLog(@"Objects: %lu", (unsigned long)[arrRight count]);
NSLog(@"%@", [arrRight description]);
Hy vọng nó sẽ giúp !!!
- 1. Mảng lọc - lẻ thậm chí
- 2. C# Tải số nguyên và hiển thị lẻ/thậm chí
- 3. CSS cho tiêu đề Bảng, thậm chí hàng lẻ?
- 4. Kiểm tra xem một số có dương hay âm bằng cách sử dụng toán tử bitwise
- 5. Kiểm tra xem URL có tồn tại hay không
- 6. Kiểm tra xem mảng có trống hay không
- 7. Python - Kiểm tra xem tệp có trống hay không
- 8. Symfony2: kiểm tra xem phiên có tồn tại hay không
- 9. cách kiểm tra xem div có id hay không?
- 10. Kiểm tra xem url có hợp lệ hay không
- 11. Để kiểm tra xem phiên có sẵn hay không
- 12. Kiểm tra xem thư mục có tập tin hay không
- 13. jquery này so với $ (this) và thậm chí có thể $
- 14. Cách tốt hơn để xác định thậm chí/hàng lẻ trong bảng
- 15. Jquery: Thêm một lớp học để thậm chí là một số lẻ List-Elements
- 16. yếu tố Zip với chỉ số lẻ và thậm chí trong một danh sách
- 17. IE: nth-child() sử dụng lẻ/thậm chí không hoạt động
- 18. NSDictionary - Cần kiểm tra xem từ điển có chứa cặp khóa-giá trị hay không
- 19. SQL hoặc thậm chí TSQL Turing có hoàn thành không?
- 20. Kiểm tra xem đây có phải là
- 21. Jquery, kiểm tra xem một giá trị có tồn tại trong mảng hay không
- 22. cách kiểm tra xem tệp pdb có hợp lệ để gỡ lỗi một assembly hay không
- 23. Kiểm tra nếu một đối tượng là NSInteger
- 24. Kiểm tra xem getJSONArray là null hay không
- 25. Kiểm tra xem mã đang chạy trên GPU hay CPU
- 26. Kiểm tra xem tắt máy được khởi động hay không
- 27. Javascript để kiểm tra xem hộp kiểm có đang được chọn hay không được chọn
- 28. kiểm tra xem hộp kiểm có được chọn hay không bằng cách sử dụng jquery
- 29. jquery Mobile: kiểm tra xem hộp kiểm có được chọn hay không
- 30. php: kiểm tra xem đường dẫn có tồn tại không?
Không hoạt động. http://cl.ly/c7k. – Joshua
phải có điều gì đó sai với định nghĩa biến "số nguyên" của bạn.Dù sao tôi thích câu trả lời của Horace hơn – Vladimir
Định nghĩa là: \t 'NSInteger * số nguyên;' – Joshua