이것은 내 첫 번째 게시물입니다. 나는 Obj-C에 대해서 조금 경험이있다. 라이온스의 Xcode 3에서 사용되지 않는 AppleScript Studio에서 개발했지만 내 소프트웨어에서 사용할 Obj-C 라이브러리를 몇 개 만들었습니다. 이 라이브러리는 AppleScript에서 값을 전달하거나 다시 전달하도록 설계되었습니다. 이 중 하나가 Calendar Store에 액세스합니다. 내 용어가 절망적이라면 용서해주십시오. :)캘린더 배열 객체에 이벤트 위치 저장
문제는 "이벤트 위치"를 AppleScript로 반환 할 수있는 변경 가능한 배열의 개체에 넣으려고 할 때 발생합니다. 이 방법으로 이벤트의 대부분의 모든 속성을 위치 이외에 성공적으로 가져올 수 있습니다.
은 여기 댓글에 받고 있어요 빌드 오류의 (부분) 코드입니다 :NSEnumerator *eventEnumerator = [[calStore eventsWithPredicate:predicate] objectEnumerator];
id event;
while (event = [eventEnumerator nextObject]) {
NSMutableArray *eachEvent = [NSMutableArray arrayWithCapacity:10];
// the following, and most other properites not included here, works fine:
if ([event notes] == nil) {
[eachEvent addObject:[NSString stringWithFormat:@""]];
}
else
{
[eachEvent addObject:[event notes]]; //#06
}
@try {
if ([event location] == nil {
// error:
// invalid operands to binary == (have 'CGFloat' and 'struct NSNull *')
// incompatible type for argument 1 of 'addObject:'
[eachEvent addObject:[NSString stringWithFormat:@""]];
}
else
{
[eachEvent addObject:[event location]]; //#10
// error: incompatible type for argument 1 of 'addObject:'
}
}
@catch(NSException *exception) {
[eachEvent addObject:[NSString stringWithFormat:@"-10-"]]; // #10 dummy for location
}
// now add all properties of this event (eachEvent) to all events information (eventInformation)
[eventInformation addObject:eachEvent];
}
return eventInformation;
}
내가 같은 오류 if ([event location] == [NSNull null])
를 사용하는 대신 if ([event location] = nil {
의 시도.
누구나 올바른 코드로이 문제에 관해 밝힐 수 있습니까?
'event.location == nil '일 때 작동하지 않을 것입니다.'[string length] == 0'을 체크해야합니다. 이것은 nil과 빈 문자열에 대해 작동합니다. –
조명의 힌트를 주셔서 감사합니다. 불행히도 빈/nil 문자열 문제는 의심 할 여지없이 모든 비교 또는 예외 검사를 벗어난 경우에도 여전히 지정된 빌드 오류가 발생합니다. 즉, 다음 문과 함께 : "[eachEvent addObject : [event location]];" AddObj의 인수 1에 대해 "호환되지 않는 유형"의 빌드 오류가 발생합니다. 그래서 ... 첫 번째 문제는 eachEvent 객체를 제대로 초기화하는 것 같습니다. 내가 사용하는 전체 코드를 제공 했으므로 그 점에서 내가 뭘 잘못하고 있니? 감사. –
... 그리고 이러한 생각이 필요한 것이 아닌 경우에는 실제로 피연산자에 무엇이 있는지 알고 있으면 편리합니다. NSLog (@ operand1 : % @ ", [event location]);'... . – markjs